diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c index 3379742b5b..c32413aa86 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c @@ -724,7 +724,7 @@ if (BG==1) #ifdef __AVX512BW__ nrLDPC_bnProc_BG2_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); #else - nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,+p_procBuf->llrRes, Z); + nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); #endif break; } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c111 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c111 deleted file mode 100644 index a35bcdb497..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c111 +++ /dev/null @@ -1,1139 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines thenrLDPC decoder -*/ - -#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" - - -/*---------------------------------------------------------------------- -| cn processing files -->AVX512 -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------- -#ifdef __AVX512BW__ - -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h" - -#else - -/*---------------------------------------------------------------------- -| cn Processing files -->AVX2 -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h" - -#endif - -/*---------------------------------------------------------------------- -| bn Processing files -->AVX2 -/----------------------------------------------------------------------*/ - -//bnProcPc------------------------------------------------------------- -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R23_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R89_AVX2.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R15_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R23_AVX2.h" - -//bnProc---------------------------------------------------------------- - -#ifdef __AVX512BW__ -//BG1------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG1_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG1_R23_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG1_R89_AVX512.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG2_R15_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG2_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG2_R23_AVX512.h" - -#else -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R23_AVX2.h" - -#endif - - - - - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // LaunchnrLDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief PerformsnrLDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParamsnrLDPC decoder parameters - \param p_profilernrLDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t R = p_decParams->R; //Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - // int8_t* cnProcBuf= p_procBuf->cnProcBuf; - // int8_t* cnProcBufRes=p_procBuf->cnProcBufRes; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -//nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - if (BG==1) - { - switch (R) - { - case 13: - { - nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - case 23: - { - nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - case 89: - { - nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - } - } - else - { - switch (R) - { - case 15: - { - nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - case 13: - - { - nrLDPC_bnProcPc_BG2_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - - case 23: - - { - nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - - - } - } - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - - -if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R89_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R15_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 13: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - case 23: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - - } - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -//nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - if (BG==1) - { - switch (R) - { - case 13: - { - nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - case 23: - { - nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - case 89: - { - nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - } - } - else - { - switch (R) - { - case 15: - { - nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - case 13: - - { - nrLDPC_bnProcPc_BG2_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - - case 23: - - { - nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - - - } - } - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - - -if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R89_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R15_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 13: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - case 23: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - - } - } - - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - //nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - if (BG==1) - { - switch (R) - { - case 13: - { - nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - case 23: - { - nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - case 89: - { - nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - } - } - else - { - switch (R) - { - case 15: - { - nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - case 13: - - { - nrLDPC_bnProcPc_BG2_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - - case 23: - - { - nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - break; - } - - - } - } - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - -//nrLDPC_bnProc(p_lut, p_procBuf, Z); - - - -if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R89_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R15_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 13: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - case 23: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - - } - } - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.save b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.save deleted file mode 100644 index 1a0bd672e6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.save +++ /dev/null @@ -1,902 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines thenrLDPC decoder -*/ - -#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" - - - /*----------------------------------------------------------------------/ - / cn processing files -->AVX512 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------- -#ifdef __AVX512BW__ - -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.c" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.c" - - -#else - - /*----------------------------------------------------------------------/ - / cn Processing files -->AVX2 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c" -#endif - - -//Bn Processing files - -//bnProcPc -//BG1------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c" - -//bnProc -///#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.c" -//#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.c" - - - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // LaunchnrLDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief PerformsnrLDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParamsnrLDPC decoder parameters - \param p_profilernrLDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t R = p_decParams->R; //Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - // int8_t* cnProcBuf= p_procBuf->cnProcBuf; - // int8_t* cnProcBufRes=p_procBuf->cnProcBufRes; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - if(BG==1){ - - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - else{ - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - if(BG==1){ - - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - /* case 256: - { - nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 48: - { - nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 32: - { - nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } -*/ - } - } - else{ - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - /* case 256: - { - nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 48: - { - nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 32: - { - nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } -*/ - } - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - - if(BG==1){ - - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - else{ - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.save2 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.save2 deleted file mode 100644 index 88b6376a31..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.save2 +++ /dev/null @@ -1,1217 +0,0 @@ - - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines thenrLDPC decoder -*/ - -#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" - - -/*---------------------------------------------------------------------- -| cn processing files -->AVX512 -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------- -#ifdef __AVX512BW__ - -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h" - -#else - -/*---------------------------------------------------------------------- -| cn Processing files -->AVX2 -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h" - -#endif - -/*---------------------------------------------------------------------- -| bn Processing files -->AVX2 -/----------------------------------------------------------------------*/ - -//bnProcPc------------------------------------------------------------- - -//#ifdef __AVX512BW__ -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/bn_avx512/nrLDPC_bnProcPc_BG1_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bn_avx512/nrLDPC_bnProcPc_BG1_R23_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bn_avx512/nrLDPC_bnProcPc_BG1_R89_AVX512.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bn_avx512/nrLDPC_bnProcPc_BG2_R15_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bn_avx512/nrLDPC_bnProcPc_BG2_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bn_avx512/nrLDPC_bnProcPc_BG2_R23_AVX512.h" - -//#else -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R23_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R89_AVX2.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R15_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R23_AVX2.h" - -//#endif - -//bnProc---------------------------------------------------------------- - -#ifdef __AVX512BW__ -//BG1------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG1_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG1_R23_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG1_R89_AVX512.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG2_R15_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG2_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc_avx512/nrLDPC_bnProc_BG2_R23_AVX512.h" - -#else -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R23_AVX2.h" - -#endif - - - - - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // LaunchnrLDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief PerformsnrLDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParamsnrLDPC decoder parameters - \param p_profilernrLDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t R = p_decParams->R; //Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - // int8_t* cnProcBuf= p_procBuf->cnProcBuf; - // int8_t* cnProcBufRes=p_procBuf->cnProcBufRes; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -//nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - if (BG==1) - { - switch (R) - { - case 13: - { - // #ifdef __AVX512BW__ - // nrLDPC_bnProcPc_BG1_R13_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - // #else - nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - // #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG1_R23_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG1_R89_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG2_R15_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG2_R23_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG2_R23_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - - - } - } - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - - -if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R89_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R15_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 13: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - case 23: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - - } - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -//nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - if (BG==1) - { - switch (R) - { - case 13: - { - /*#ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG1_R13_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else*/ - nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - // #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG1_R23_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG1_R89_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG2_R15_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG2_R23_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG2_R23_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - - - } - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - - -if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R89_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R15_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 13: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - case 23: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - - } - } - - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); - #endif - break; - } - - } - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - //nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - if (BG==1) - { - switch (R) - { - case 13: - { - // #ifdef __AVX512BW__ - // nrLDPC_bnProcPc_BG1_R13_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - // #else - nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - // #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG1_R23_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG1_R89_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG2_R15_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG2_R23_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_BG2_R23_AVX512(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #else - nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); - #endif - break; - } - - - } - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - -//nrLDPC_bnProc(p_lut, p_procBuf, Z); - - - -if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG1_R89_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - } - } - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R15_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - case 13: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R13_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - case 23: - - { - #ifdef __AVX512BW__ - nrLDPC_bnProc_BG2_R23_AVX512(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #else - nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); - #endif - break; - } - - - } - } - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h2 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h_native_memcpy similarity index 100% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h2 rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h_native_memcpy diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.o b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.o new file mode 100644 index 0000000000..6e555b6547 Binary files /dev/null and b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.o differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.o b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.o new file mode 100644 index 0000000000..4272cb0f12 Binary files /dev/null and b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.o differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.o b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.o new file mode 100644 index 0000000000..2f8122d081 Binary files /dev/null and b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.o differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.o b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.o new file mode 100644 index 0000000000..5fd9d2d53c Binary files /dev/null and b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.o differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 index c6c58ebe14..937e851059 100755 Binary files a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 and b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.o b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.o new file mode 100644 index 0000000000..af3e990f99 Binary files /dev/null and b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.o differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.c deleted file mode 100644 index b5e9d947c0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.c +++ /dev/null @@ -1,270 +0,0 @@ -void nrLDPC_bnProc_BG2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; - uint32_t M, i; -// Process group with 2 CNs - M = (1*Z + 31)>>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i>5; - for (i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R89_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (8*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R15_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (6*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#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. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size -*/ -#ifdef __AVX512BW__ - -static inline void nrLDPC_bnProcPc_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numBnInBnGroups = p_lut->numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m256i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m256i* p_llrProcBuf; - __m512i* p_llrProcBuf256; - __m512i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m512i zmm0, zmm1, zmmRes0, zmmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 63)>>6; - - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m512i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m512i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m512i* p_llrRes; - __m512i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i>5; - uint32_t Mr = numLLR&31; - - const __m256i* p_zeros = (__m256i*) zeros256_epi8; - const __m256i* p_ones = (__m256i*) ones256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - p_out8 = (int8_t*) p_out; - - for (i=0; i>5; - uint32_t Mr = numLLR&31; - const __m256i* p_shuffle = (__m256i*) constShuffle_256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - - for (i=0; i - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_CNPROC__H__ -#define __NR_LDPC_CNPROC__H__ - -/** - \brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer. - \param p_lut Pointer to decoder LUTs - \param p_procBuf Pointer to processing buffers - \param Z Lifting size -*/ -static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - __m256i *pj0 = &p_cnProcBuf[lut_idxCnProcG3[j][0]]; - __m256i *pj1 = &p_cnProcBuf[lut_idxCnProcG3[j][1]]; - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m512i* p_cnProcBuf; - __m512i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m512i zmm0, min, sgn, zeros,maxLLR; - - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - __m512i* p_cnProcBufResBit; - - - const __m512i* p_ones = (__m512i*) ones512_epi8; - const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8; - - - - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 7 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 9 BNs - - if (lut_numCnInCnGroups[6] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[6]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[7] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[7]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 19 BNs - - if (lut_numCnInCnGroups[8] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[8]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -/** - \brief Performs parity check for BG2 on the CN processing buffer. Stops as soon as error is detected. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size - \return 32-bit parity check indicator -*/ -static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -#endif - diff --git a/openair1/PHY/CODING/nrLDPC_decoder/save_best/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder/save_best/nrLDPC_decoder.c deleted file mode 100644 index 8932b3375c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/save_best/nrLDPC_decoder.c +++ /dev/null @@ -1,541 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_bnProc.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_bnProc.h deleted file mode 100644 index 9641563e9e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_bnProc.h +++ /dev/null @@ -1,2830 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_bnProc.h - * \brief Defines the functions for bit node processing - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#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. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size -*/ -static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numBnInBnGroups = p_lut->numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i>5; - uint32_t Mr = numLLR&31; - - const __m256i* p_zeros = (__m256i*) zeros256_epi8; - const __m256i* p_ones = (__m256i*) ones256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - p_out8 = (int8_t*) p_out; - - for (i=0; i>5; - uint32_t Mr = numLLR&31; - const __m256i* p_shuffle = (__m256i*) constShuffle_256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - - for (i=0; i - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_CNPROC__H__ -#define __NR_LDPC_CNPROC__H__ - -/** - \brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer. - \param p_lut Pointer to decoder LUTs - \param p_procBuf Pointer to processing buffers - \param Z Lifting size -*/ - -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) - -#ifdef __AVX512BW__ -static inline void nrLDPC_cnProc_BG2_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m512i* p_cnProcBuf; - __m512i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m512i zmm0, min, sgn, zeros; - zeros = _mm512_setzero_si512(); -// maxLLR = _mm512_set1_epi8((char)127); - __m512i* p_cnProcBufResBit; - - const __m512i* p_ones = (__m512i*) ones512_epi8; - const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - __m512i *pj0 = &p_cnProcBuf[(lut_idxCnProcG3[j][0]/2)]; - __m512i *pj1 = &p_cnProcBuf[(lut_idxCnProcG3[j][1]/2)]; - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - __m256i *pj0 = &p_cnProcBuf[lut_idxCnProcG3[j][0]]; - __m256i *pj1 = &p_cnProcBuf[lut_idxCnProcG3[j][1]]; - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m512i* p_cnProcBuf; - __m512i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m512i zmm0, min, sgn, zeros; - - zeros = _mm512_setzero_si512(); - // maxLLR = _mm512_set1_epi8((char)127); - __m512i* p_cnProcBufResBit; - - - const __m512i* p_ones = (__m512i*) ones512_epi8; - const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8; - - - - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 7 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 9 BNs - - if (lut_numCnInCnGroups[6] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[6]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[7] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[7]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 19 BNs - - if (lut_numCnInCnGroups[8] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[8]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -/** - \brief Performs parity check for BG2 on the CN processing buffer. Stops as soon as error is detected. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size - \return 32-bit parity check indicator -*/ -static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -#endif - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.c deleted file mode 100644 index 2d541b2703..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.c +++ /dev/null @@ -1,745 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines thenrLDPC decoder -*/ - -#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" - - - /*----------------------------------------------------------------------/ - / cn processing files -->AVX512 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------- -#ifdef __AVX512BW__ - -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h" - - -#else - - /*----------------------------------------------------------------------/ - / cn Processing files -->AVX2 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h" -#endif - - -//Bn Processing files - -//bnProcPc -//BG1------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c" - -//bnProc -///#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.c" -//#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.c" - - - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // LaunchnrLDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief PerformsnrLDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParamsnrLDPC decoder parameters - \param p_profilernrLDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t R = p_decParams->R; //Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - // int8_t* cnProcBuf= p_procBuf->cnProcBuf; - // int8_t* cnProcBufRes=p_procBuf->cnProcBufRes; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - -nrLDPC_bnProc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.c2 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.c2 deleted file mode 100644 index 34bfdc2fb3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.c2 +++ /dev/null @@ -1,534 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); - -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.save b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.save deleted file mode 100644 index 1a0bd672e6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.save +++ /dev/null @@ -1,902 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines thenrLDPC decoder -*/ - -#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" - - - /*----------------------------------------------------------------------/ - / cn processing files -->AVX512 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------- -#ifdef __AVX512BW__ - -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.c" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.c" - - -#else - - /*----------------------------------------------------------------------/ - / cn Processing files -->AVX2 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c" -#endif - - -//Bn Processing files - -//bnProcPc -//BG1------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c" - -//bnProc -///#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.c" -//#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.c" - - - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // LaunchnrLDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief PerformsnrLDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParamsnrLDPC decoder parameters - \param p_profilernrLDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t R = p_decParams->R; //Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - // int8_t* cnProcBuf= p_procBuf->cnProcBuf; - // int8_t* cnProcBufRes=p_procBuf->cnProcBufRes; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - if(BG==1){ - - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - else{ - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - if(BG==1){ - - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - /* case 256: - { - nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 48: - { - nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 32: - { - nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } -*/ - } - } - else{ - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - /* case 256: - { - nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 48: - { - nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 32: - { - nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } -*/ - } - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - - if(BG==1){ - - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - else{ - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_init.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_init.h deleted file mode 100644 index ea031dc2da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_init.h +++ /dev/null @@ -1,1640 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_init.h - * \brief Defines the function to initialize the LDPC decoder and sets correct LUTs. - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_INIT__H__ -#define __NR_LDPC_INIT__H__ - -#include "nrLDPC_lut.h" -#include "nrLDPCdecoder_defs.h" - -/** - \brief Initializes the decoder and sets correct LUTs - \param p_decParams Pointer to decoder parameters - \param p_lut Pointer to decoder LUTs - \return Number of LLR values -*/ -static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lut* p_lut) -{ - uint32_t numLLR = 0; - uint8_t BG = p_decParams->BG; - uint16_t Z = p_decParams->Z; - uint8_t R = p_decParams->R; - - if (BG == 2) - { - // LUT that only depend on BG - p_lut->startAddrCnGroups = lut_startAddrCnGroups_BG2; - - p_lut->posBnInCnProcBuf[0] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG3; - p_lut->posBnInCnProcBuf[1] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG4; - p_lut->posBnInCnProcBuf[2] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG5; - p_lut->posBnInCnProcBuf[3] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG6; - p_lut->posBnInCnProcBuf[4] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG8; - p_lut->posBnInCnProcBuf[5] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG10; - p_lut->posBnInCnProcBuf[6] = NULL; - p_lut->posBnInCnProcBuf[7] = NULL; - p_lut->posBnInCnProcBuf[8] = NULL; - - // LUT that only depend on R - if (R == 15) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG4; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG5; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG8; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG10; - p_lut->startAddrBnProcBuf[6] = NULL; - p_lut->startAddrBnProcBuf[7] = NULL; - p_lut->startAddrBnProcBuf[8] = NULL; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG3; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG4; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG5; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG8; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG10; - p_lut->bnPosBnProcBuf[6] = NULL; - p_lut->bnPosBnProcBuf[7] = NULL; - p_lut->bnPosBnProcBuf[8] = NULL; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R15; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG2_R15; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; - - numLLR = NR_LDPC_NCOL_BG2_R15*Z; - } - else if (R == 13) - { - p_lut->startAddrBnProcBuf[0] = NULL; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG4; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG5; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG8; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG10; - p_lut->startAddrBnProcBuf[6] = NULL; - p_lut->startAddrBnProcBuf[7] = NULL; - p_lut->startAddrBnProcBuf[8] = NULL; - - p_lut->bnPosBnProcBuf[0] = NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG4; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG5; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG8; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG10; - p_lut->bnPosBnProcBuf[6] = NULL; - p_lut->bnPosBnProcBuf[7] = NULL; - p_lut->bnPosBnProcBuf[8] = NULL; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R13; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG2_R13; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; - - numLLR = NR_LDPC_NCOL_BG2_R13*Z; - } - else if (R == 23) - { - p_lut->startAddrBnProcBuf[0] = NULL; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG4; - p_lut->startAddrBnProcBuf[2] = NULL; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG8; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG10; - p_lut->startAddrBnProcBuf[6] = NULL; - p_lut->startAddrBnProcBuf[7] = NULL; - p_lut->startAddrBnProcBuf[8] = NULL; - - p_lut->bnPosBnProcBuf[0] = NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG4; - p_lut->bnPosBnProcBuf[2] = NULL; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG8; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG10; - p_lut->bnPosBnProcBuf[6] = NULL; - p_lut->bnPosBnProcBuf[7] = NULL; - p_lut->bnPosBnProcBuf[8] = NULL; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R23; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG2_R23; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; - - numLLR = NR_LDPC_NCOL_BG2_R23*Z; - } - - // LUT that depend on Z and R - switch (Z) - { - case 2: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z2_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z2_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z2_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z2_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z2_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z2_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 3: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z3_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z3_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z3_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z3_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z3_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z3_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 4: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z4_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z4_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z4_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z4_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z4_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z4_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 5: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z5_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z5_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z5_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z5_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z5_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z5_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 6: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z6_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z6_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z6_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z6_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z6_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z6_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 7: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z7_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z7_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z7_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z7_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z7_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z7_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 8: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z8_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z8_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z8_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z8_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z8_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z8_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 9: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z9_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z9_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z9_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z9_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z9_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z9_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 10: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z10_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z10_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z10_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z10_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z10_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z10_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 11: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z11_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z11_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z11_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z11_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z11_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z11_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 12: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z12_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z12_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z12_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z12_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z12_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z12_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 13: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z13_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z13_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z13_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z13_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z13_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z13_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 14: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z14_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z14_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z14_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z14_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z14_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z14_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 15: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z15_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z15_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z15_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z15_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z15_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z15_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 16: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z16_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z16_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z16_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z16_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z16_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z16_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 18: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z18_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z18_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z18_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z18_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z18_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z18_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 20: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z20_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z20_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z20_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z20_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z20_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z20_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 22: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z22_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z22_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z22_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z22_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z22_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z22_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 24: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z24_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z24_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z24_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z24_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z24_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z24_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 26: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z26_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z26_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z26_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z26_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z26_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z26_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 28: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z28_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z28_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z28_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z28_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z28_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z28_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 30: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z30_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z30_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z30_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z30_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z30_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z30_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 32: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z32_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z32_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z32_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z32_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z32_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z32_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 36: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z36_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z36_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z36_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z36_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z36_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z36_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 40: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z40_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z40_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z40_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z40_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z40_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z40_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 44: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z44_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z44_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z44_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z44_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z44_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z44_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 48: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z48_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z48_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z48_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z48_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z48_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z48_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 52: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z52_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z52_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z52_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z52_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z52_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z52_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 56: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z56_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z56_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z56_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z56_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z56_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z56_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 60: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z60_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z60_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z60_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z60_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z60_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z60_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 64: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z64_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z64_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z64_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z64_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z64_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z64_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 72: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z72_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z72_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z72_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z72_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z72_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z72_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 80: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z80_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z80_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z80_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z80_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z80_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z80_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 88: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z88_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z88_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z88_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z88_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z88_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z88_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 96: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z96_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z96_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z96_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z96_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z96_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z96_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 104: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z104_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z104_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z104_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z104_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z104_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z104_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 112: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z112_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z112_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z112_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z112_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z112_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z112_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 120: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z120_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z120_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z120_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z120_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z120_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z120_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 128: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z128_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z128_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z128_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z128_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z128_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z128_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 144: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z144_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z144_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z144_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z144_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z144_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z144_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 160: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z160_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z160_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z160_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z160_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z160_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z160_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 176: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z176_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z176_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z176_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z176_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z176_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z176_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 192: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z192_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z192_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z192_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z192_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z192_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z192_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 208: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z208_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z208_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z208_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z208_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z208_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z208_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 224: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z224_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z224_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z224_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z224_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z224_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z224_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 240: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z240_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z240_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z240_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z240_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z240_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z240_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 256: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z256_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z256_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z256_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z256_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z256_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z256_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 288: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z288_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z288_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z288_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z288_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z288_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z288_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 320: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z320_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z320_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z320_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z320_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z320_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z320_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 352: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z352_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z352_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z352_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z352_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z352_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z352_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 384: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z384_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z384_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z384_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z384_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z384_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z384_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - default: - { - p_lut->circShift[0] = NULL; - p_lut->circShift[1] = NULL; - p_lut->circShift[2] = NULL; - p_lut->circShift[3] = NULL; - p_lut->circShift[4] = NULL; - p_lut->circShift[5] = NULL; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - } - } - } - else - { // BG == 1 - // LUT that only depend on BG - p_lut->startAddrCnGroups = lut_startAddrCnGroups_BG1; - - p_lut->posBnInCnProcBuf[0] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG3; - p_lut->posBnInCnProcBuf[1] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG4; - p_lut->posBnInCnProcBuf[2] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG5; - p_lut->posBnInCnProcBuf[3] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG6; - p_lut->posBnInCnProcBuf[4] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG7; - p_lut->posBnInCnProcBuf[5] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG8; - p_lut->posBnInCnProcBuf[6] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG9; - p_lut->posBnInCnProcBuf[7] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG10; - p_lut->posBnInCnProcBuf[8] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG19; - - // LUT that only depend on R - if (R == 13) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG4; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG5; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG7; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG8; - p_lut->startAddrBnProcBuf[6] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG9; - p_lut->startAddrBnProcBuf[7] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG10; - p_lut->startAddrBnProcBuf[8] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG19; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG4; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG5; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG7; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG8; - p_lut->bnPosBnProcBuf[6] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG9; - p_lut->bnPosBnProcBuf[7] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG10; - p_lut->bnPosBnProcBuf[8] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG19; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG1_R13; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG1_R13; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - numLLR = NR_LDPC_NCOL_BG1_R13*Z; - } - else if (R == 23) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG7; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG8; - p_lut->startAddrBnProcBuf[6] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG9; - p_lut->startAddrBnProcBuf[7] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG10; - p_lut->startAddrBnProcBuf[8] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG19; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG7; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG8; - p_lut->bnPosBnProcBuf[6] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG9; - p_lut->bnPosBnProcBuf[7] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG10; - p_lut->bnPosBnProcBuf[8] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG19; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG1_R23; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG1_R23; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - - numLLR = NR_LDPC_NCOL_BG1_R23*Z; - } - else if (R == 89) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG1_R89_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[6] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[7] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[8] = (const uint32_t**) startAddrBnProcBuf_BG1_R89_CNG19; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[6] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[7] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[8] = (const uint8_t**) bnPosBnProcBuf_BG1_R89_CNG19; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG1_R89; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG1_R89; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - - numLLR = NR_LDPC_NCOL_BG1_R89*Z; - } - - // LUT that depend on Z and R - switch (Z) - { - case 2: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z2_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z2_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z2_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z2_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z2_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z2_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z2_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z2_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z2_CNG19; - break; - } - case 3: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z3_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z3_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z3_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z3_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z3_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z3_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z3_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z3_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z3_CNG19; - break; - } - case 4: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z4_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z4_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z4_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z4_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z4_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z4_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z4_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z4_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z4_CNG19; - break; - } - case 5: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z5_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z5_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z5_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z5_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z5_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z5_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z5_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z5_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z5_CNG19; - break; - } - case 6: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z6_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z6_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z6_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z6_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z6_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z6_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z6_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z6_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z6_CNG19; - break; - } - case 7: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z7_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z7_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z7_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z7_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z7_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z7_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z7_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z7_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z7_CNG19; - break; - } - case 8: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z8_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z8_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z8_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z8_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z8_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z8_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z8_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z8_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z8_CNG19; - break; - } - case 9: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z9_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z9_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z9_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z9_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z9_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z9_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z9_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z9_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z9_CNG19; - break; - } - case 10: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z10_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z10_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z10_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z10_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z10_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z10_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z10_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z10_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z10_CNG19; - break; - } - case 11: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z11_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z11_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z11_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z11_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z11_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z11_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z11_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z11_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z11_CNG19; - break; - } - case 12: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z12_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z12_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z12_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z12_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z12_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z12_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z12_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z12_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z12_CNG19; - break; - } - case 13: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z13_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z13_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z13_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z13_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z13_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z13_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z13_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z13_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z13_CNG19; - break; - } - case 14: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z14_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z14_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z14_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z14_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z14_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z14_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z14_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z14_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z14_CNG19; - break; - } - case 15: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z15_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z15_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z15_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z15_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z15_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z15_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z15_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z15_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z15_CNG19; - break; - } - case 16: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z16_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z16_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z16_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z16_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z16_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z16_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z16_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z16_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z16_CNG19; - break; - } - case 18: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z18_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z18_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z18_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z18_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z18_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z18_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z18_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z18_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z18_CNG19; - break; - } - case 20: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z20_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z20_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z20_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z20_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z20_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z20_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z20_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z20_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z20_CNG19; - break; - } - case 22: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z22_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z22_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z22_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z22_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z22_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z22_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z22_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z22_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z22_CNG19; - break; - } - case 24: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z24_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z24_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z24_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z24_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z24_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z24_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z24_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z24_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z24_CNG19; - break; - } - case 26: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z26_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z26_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z26_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z26_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z26_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z26_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z26_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z26_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z26_CNG19; - break; - } - case 28: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z28_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z28_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z28_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z28_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z28_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z28_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z28_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z28_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z28_CNG19; - break; - } - case 30: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z30_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z30_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z30_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z30_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z30_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z30_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z30_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z30_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z30_CNG19; - break; - } - case 32: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z32_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z32_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z32_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z32_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z32_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z32_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z32_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z32_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z32_CNG19; - break; - } - case 36: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z36_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z36_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z36_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z36_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z36_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z36_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z36_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z36_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z36_CNG19; - break; - } - case 40: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z40_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z40_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z40_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z40_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z40_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z40_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z40_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z40_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z40_CNG19; - break; - } - case 44: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z44_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z44_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z44_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z44_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z44_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z44_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z44_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z44_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z44_CNG19; - break; - } - case 48: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z48_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z48_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z48_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z48_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z48_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z48_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z48_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z48_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z48_CNG19; - break; - } - case 52: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z52_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z52_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z52_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z52_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z52_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z52_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z52_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z52_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z52_CNG19; - break; - } - case 56: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z56_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z56_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z56_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z56_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z56_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z56_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z56_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z56_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z56_CNG19; - break; - } - case 60: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z60_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z60_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z60_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z60_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z60_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z60_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z60_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z60_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z60_CNG19; - break; - } - case 64: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z64_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z64_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z64_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z64_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z64_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z64_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z64_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z64_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z64_CNG19; - break; - } - case 72: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z72_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z72_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z72_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z72_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z72_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z72_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z72_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z72_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z72_CNG19; - break; - } - case 80: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z80_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z80_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z80_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z80_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z80_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z80_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z80_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z80_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z80_CNG19; - break; - } - case 88: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z88_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z88_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z88_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z88_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z88_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z88_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z88_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z88_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z88_CNG19; - break; - } - case 96: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z96_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z96_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z96_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z96_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z96_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z96_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z96_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z96_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z96_CNG19; - break; - } - case 104: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z104_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z104_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z104_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z104_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z104_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z104_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z104_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z104_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z104_CNG19; - break; - } - case 112: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z112_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z112_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z112_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z112_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z112_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z112_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z112_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z112_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z112_CNG19; - break; - } - case 120: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z120_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z120_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z120_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z120_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z120_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z120_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z120_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z120_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z120_CNG19; - break; - } - case 128: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z128_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z128_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z128_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z128_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z128_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z128_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z128_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z128_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z128_CNG19; - break; - } - case 144: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z144_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z144_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z144_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z144_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z144_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z144_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z144_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z144_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z144_CNG19; - break; - } - case 160: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z160_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z160_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z160_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z160_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z160_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z160_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z160_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z160_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z160_CNG19; - break; - } - case 176: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z176_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z176_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z176_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z176_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z176_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z176_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z176_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z176_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z176_CNG19; - break; - } - case 192: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z192_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z192_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z192_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z192_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z192_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z192_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z192_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z192_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z192_CNG19; - break; - } - case 208: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z208_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z208_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z208_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z208_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z208_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z208_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z208_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z208_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z208_CNG19; - break; - } - case 224: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z224_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z224_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z224_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z224_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z224_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z224_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z224_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z224_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z224_CNG19; - break; - } - case 240: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z240_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z240_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z240_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z240_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z240_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z240_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z240_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z240_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z240_CNG19; - break; - } - case 256: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z256_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z256_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z256_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z256_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z256_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z256_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z256_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z256_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z256_CNG19; - break; - } - case 288: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z288_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z288_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z288_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z288_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z288_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z288_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z288_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z288_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z288_CNG19; - break; - } - case 320: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z320_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z320_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z320_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z320_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z320_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z320_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z320_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z320_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z320_CNG19; - break; - } - case 352: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z352_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z352_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z352_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z352_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z352_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z352_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z352_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z352_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z352_CNG19; - break; - } - case 384: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z384_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z384_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z384_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z384_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z384_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z384_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z384_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z384_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z384_CNG19; - break; - } - default: - { - p_lut->circShift[0] = NULL; - p_lut->circShift[1] = NULL; - p_lut->circShift[2] = NULL; - p_lut->circShift[3] = NULL; - p_lut->circShift[4] = NULL; - p_lut->circShift[5] = NULL; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - } - } - } - - return numLLR; -} - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_init_mem.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_init_mem.h deleted file mode 100644 index acd40d5d2d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_init_mem.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_init_mem.h - * \brief Defines the function to initialize the LDPC decoder and sets correct LUTs. - * \author Sebastian Wagner (TCL Communications) Email: - * \date 07-12-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_INIT_MEM__H__ -#define __NR_LDPC_INIT_MEM__H__ - -#include -#include "nrLDPC_types.h" - -#ifndef malloc32_clear -/** - \brief Allocates 32 byte aligned memory and initializes to zero - \param size Input size in bytes - \return Pointer to memory -*/ -static inline void* malloc32_clear(size_t size) -{ - void* ptr = (void*) memalign(64, size+64); - memset(ptr, 0, size); - return ptr; -} -#endif - -/** - \brief Allocates and initializes the internal decoder processing buffers - \param p_decParams Pointer to decoder parameters - \param p_lut Pointer to decoder LUTs - \return Number of LLR values -*/ -static inline t_nrLDPC_procBuf* nrLDPC_init_mem(void) -{ - t_nrLDPC_procBuf* p_procBuf = (t_nrLDPC_procBuf*) malloc32_clear(sizeof(t_nrLDPC_procBuf)); - - if (p_procBuf) - { - p_procBuf->cnProcBuf = (int8_t*) malloc32_clear(NR_LDPC_SIZE_CN_PROC_BUF*sizeof(int8_t)); - p_procBuf->cnProcBufRes = (int8_t*) malloc32_clear(NR_LDPC_SIZE_CN_PROC_BUF*sizeof(int8_t)); - p_procBuf->bnProcBuf = (int8_t*) malloc32_clear(NR_LDPC_SIZE_BN_PROC_BUF*sizeof(int8_t)); - p_procBuf->bnProcBufRes = (int8_t*) malloc32_clear(NR_LDPC_SIZE_BN_PROC_BUF*sizeof(int8_t)); - p_procBuf->llrRes = (int8_t*) malloc32_clear(NR_LDPC_MAX_NUM_LLR *sizeof(int8_t)); - p_procBuf->llrProcBuf = (int8_t*) malloc32_clear(NR_LDPC_MAX_NUM_LLR *sizeof(int8_t)); - } - - return(p_procBuf); -} - -static inline void nrLDPC_free_mem(t_nrLDPC_procBuf* p_procBuf) -{ - free(p_procBuf->cnProcBuf); - free(p_procBuf->cnProcBufRes); - free(p_procBuf->bnProcBuf); - free(p_procBuf->bnProcBufRes); - free(p_procBuf->llrRes); - free(p_procBuf->llrProcBuf); - - free(p_procBuf); -} -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_lut.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_lut.h deleted file mode 100644 index df80e11d18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_lut.h +++ /dev/null @@ -1,1004 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_lut.h - * \brief Header file defining all look-up tables - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_LUT__H__ -#define __NR_LDPC_LUT__H__ - -// Circular shifts of base graph -// There are 8 sets of circular shifts depending on Z -// However, each shift is modulo Z -// BG1 -// Group of CNs with 3 BNs (CNG3) -// e.g. first and second value correspond to row 4 col 0 and 1 in the BG table (modulo Z) -static const uint16_t circShift_BG1_Z2_CNG3[3][1] = {{1},{0},{0}}; -static const uint16_t circShift_BG1_Z3_CNG3[3][1] = {{2},{1},{0}}; -static const uint16_t circShift_BG1_Z5_CNG3[3][1] = {{3},{0},{0}}; -static const uint16_t circShift_BG1_Z7_CNG3[3][1] = {{2},{3},{0}}; -static const uint16_t circShift_BG1_Z9_CNG3[3][1] = {{3},{1},{0}}; -static const uint16_t circShift_BG1_Z11_CNG3[3][1] = {{9},{3},{0}}; -static const uint16_t circShift_BG1_Z13_CNG3[3][1] = {{11},{9},{0}}; -static const uint16_t circShift_BG1_Z15_CNG3[3][1] = {{4},{1},{0}}; -static const uint16_t circShift_BG1_Z4_CNG3[3][1] = {{1},{2},{0}}; -static const uint16_t circShift_BG1_Z6_CNG3[3][1] = {{2},{1},{0}}; -static const uint16_t circShift_BG1_Z10_CNG3[3][1] = {{3},{5},{0}}; -static const uint16_t circShift_BG1_Z14_CNG3[3][1] = {{2},{10},{0}}; -static const uint16_t circShift_BG1_Z18_CNG3[3][1] = {{12},{1},{0}}; -static const uint16_t circShift_BG1_Z22_CNG3[3][1] = {{20},{14},{0}}; -static const uint16_t circShift_BG1_Z26_CNG3[3][1] = {{24},{22},{0}}; -static const uint16_t circShift_BG1_Z30_CNG3[3][1] = {{4},{1},{0}}; -static const uint16_t circShift_BG1_Z8_CNG3[3][1] = {{5},{6},{0}}; -static const uint16_t circShift_BG1_Z12_CNG3[3][1] = {{8},{1},{0}}; -static const uint16_t circShift_BG1_Z20_CNG3[3][1] = {{13},{5},{0}}; -static const uint16_t circShift_BG1_Z28_CNG3[3][1] = {{2},{10},{0}}; -static const uint16_t circShift_BG1_Z36_CNG3[3][1] = {{30},{19},{0}}; -static const uint16_t circShift_BG1_Z44_CNG3[3][1] = {{42},{36},{0}}; -static const uint16_t circShift_BG1_Z52_CNG3[3][1] = {{24},{48},{0}}; -static const uint16_t circShift_BG1_Z60_CNG3[3][1] = {{4},{31},{0}}; -static const uint16_t circShift_BG1_Z16_CNG3[3][1] = {{13},{6},{0}}; -static const uint16_t circShift_BG1_Z24_CNG3[3][1] = {{20},{13},{0}}; -static const uint16_t circShift_BG1_Z40_CNG3[3][1] = {{33},{5},{0}}; -static const uint16_t circShift_BG1_Z56_CNG3[3][1] = {{2},{10},{0}}; -static const uint16_t circShift_BG1_Z72_CNG3[3][1] = {{30},{19},{0}}; -static const uint16_t circShift_BG1_Z88_CNG3[3][1] = {{42},{80},{0}}; -static const uint16_t circShift_BG1_Z104_CNG3[3][1] = {{24},{100},{0}}; -static const uint16_t circShift_BG1_Z120_CNG3[3][1] = {{64},{91},{0}}; -static const uint16_t circShift_BG1_Z32_CNG3[3][1] = {{29},{6},{0}}; -static const uint16_t circShift_BG1_Z48_CNG3[3][1] = {{44},{37},{0}}; -static const uint16_t circShift_BG1_Z80_CNG3[3][1] = {{73},{45},{0}}; -static const uint16_t circShift_BG1_Z112_CNG3[3][1] = {{58},{10},{0}}; -static const uint16_t circShift_BG1_Z144_CNG3[3][1] = {{102},{91},{0}}; -static const uint16_t circShift_BG1_Z176_CNG3[3][1] = {{42},{80},{0}}; -static const uint16_t circShift_BG1_Z208_CNG3[3][1] = {{24},{204},{0}}; -static const uint16_t circShift_BG1_Z240_CNG3[3][1] = {{64},{211},{0}}; -static const uint16_t circShift_BG1_Z64_CNG3[3][1] = {{29},{38},{0}}; -static const uint16_t circShift_BG1_Z96_CNG3[3][1] = {{44},{85},{0}}; -static const uint16_t circShift_BG1_Z160_CNG3[3][1] = {{73},{45},{0}}; -static const uint16_t circShift_BG1_Z224_CNG3[3][1] = {{170},{10},{0}}; -static const uint16_t circShift_BG1_Z288_CNG3[3][1] = {{246},{235},{0}}; -static const uint16_t circShift_BG1_Z352_CNG3[3][1] = {{42},{256},{0}}; -static const uint16_t circShift_BG1_Z128_CNG3[3][1] = {{29},{102},{0}}; -static const uint16_t circShift_BG1_Z192_CNG3[3][1] = {{140},{181},{0}}; -static const uint16_t circShift_BG1_Z320_CNG3[3][1] = {{233},{205},{0}}; -static const uint16_t circShift_BG1_Z256_CNG3[3][1] = {{157},{102},{0}}; -static const uint16_t circShift_BG1_Z384_CNG3[3][1] = {{332},{181},{0}}; - -// Group of CNs with 4 BNs (CNG4) ->[Num BNs][Num of CN with 4 BNs] -static const uint16_t circShift_BG1_Z2_CNG4[4][5] = {{1, 0, 1, 1, 1},{0, 0, 1, 1, 1},{0, 0, 1, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG4[4][5] = {{2, 2, 1, 2, 0},{2, 1, 1, 2, 2},{2, 1, 0, 2, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG4[4][5] = {{0, 3, 2, 1, 1},{4, 0, 0, 0, 3},{4, 0, 2, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG4[4][5] = {{5, 4, 4, 2, 2},{1, 6, 3, 0, 2},{6, 5, 5, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG4[4][5] = {{0, 0, 0, 0, 6},{0, 0, 0, 0, 0},{0, 0, 2, 8, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG4[4][5] = {{3, 0, 7, 2, 5},{7, 5, 6, 6, 1},{4, 8, 3, 6, 4},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG4[4][5] = {{7, 4, 10, 7, 12},{10, 2, 6, 10, 6},{9, 5, 12, 6, 10},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG4[4][5] = {{0, 14, 4, 12, 12},{7, 9, 13, 5, 9},{9, 11, 0, 11, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG4[4][5] = {{1, 2, 1, 1, 1},{0, 0, 1, 1, 3},{2, 2, 1, 1, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG4[4][5] = {{2, 5, 1, 5, 3},{2, 4, 1, 2, 5},{5, 1, 0, 2, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG4[4][5] = {{0, 8, 2, 6, 1},{9, 5, 0, 5, 8},{4, 5, 7, 6, 6},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG4[4][5] = {{12, 11, 11, 2, 2},{1, 13, 3, 7, 9},{6, 12, 12, 8, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG4[4][5] = {{9, 0, 0, 9, 6},{0, 0, 0, 0, 0},{0, 0, 2, 17, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG4[4][5] = {{3, 11, 18, 2, 16},{18, 16, 17, 17, 1},{4, 19, 3, 17, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG4[4][5] = {{20, 4, 10, 7, 25},{10, 2, 6, 10, 19},{22, 5, 12, 6, 23},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG4[4][5] = {{15, 29, 4, 12, 27},{22, 24, 13, 20, 24},{9, 11, 0, 11, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG4[4][5] = {{1, 6, 5, 5, 5},{0, 4, 1, 5, 7},{2, 2, 5, 1, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG4[4][5] = {{2, 5, 7, 5, 3},{2, 10, 1, 2, 5},{5, 7, 0, 2, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG4[4][5] = {{10, 18, 12, 6, 1},{9, 15, 0, 5, 8},{4, 15, 17, 6, 6},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG4[4][5] = {{12, 25, 11, 2, 16},{1, 27, 17, 7, 9},{6, 26, 12, 22, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG4[4][5] = {{9, 0, 0, 27, 24},{0, 0, 0, 0, 0},{0, 0, 2, 35, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG4[4][5] = {{3, 11, 40, 24, 38},{18, 16, 17, 39, 23},{4, 41, 3, 17, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG4[4][5] = {{46, 30, 10, 7, 25},{36, 2, 32, 10, 45},{22, 31, 12, 6, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG4[4][5] = {{45, 59, 4, 42, 57},{52, 24, 43, 50, 54},{9, 41, 30, 11, 33},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG4[4][5] = {{9, 6, 13, 5, 5},{8, 12, 9, 13, 7},{2, 10, 5, 9, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG4[4][5] = {{2, 5, 7, 17, 15},{2, 10, 13, 14, 5},{5, 19, 0, 2, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG4[4][5] = {{10, 18, 32, 26, 21},{29, 15, 0, 25, 28},{24, 35, 37, 6, 6},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG4[4][5] = {{40, 25, 11, 2, 16},{29, 27, 45, 35, 9},{6, 26, 40, 22, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG4[4][5] = {{45, 0, 0, 27, 24},{36, 0, 0, 0, 0},{0, 0, 2, 35, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG4[4][5] = {{3, 55, 40, 24, 82},{62, 60, 61, 83, 67},{4, 85, 47, 17, 59},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG4[4][5] = {{98, 82, 10, 59, 77},{36, 2, 84, 10, 45},{22, 31, 12, 58, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG4[4][5] = {{45, 59, 4, 102, 57},{112, 84, 103, 50, 114},{9, 41, 30, 71, 93},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG4[4][5] = {{25, 6, 29, 21, 21},{8, 28, 9, 29, 23},{2, 26, 21, 9, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG4[4][5] = {{2, 29, 31, 17, 39},{2, 34, 37, 14, 5},{5, 19, 24, 26, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG4[4][5] = {{50, 58, 32, 66, 21},{29, 15, 0, 65, 68},{64, 35, 37, 46, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG4[4][5] = {{96, 81, 67, 2, 72},{29, 83, 45, 91, 9},{62, 26, 96, 78, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG4[4][5] = {{45, 72, 72, 27, 24},{36, 0, 0, 0, 0},{72, 0, 2, 35, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG4[4][5] = {{91, 143, 128, 112, 82},{150, 60, 61, 83, 67},{92, 85, 135, 17, 59},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG4[4][5] = {{98, 82, 10, 163, 181},{140, 2, 84, 10, 45},{22, 135, 12, 162, 153},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG4[4][5] = {{165, 59, 4, 222, 177},{232, 204, 103, 170, 114},{9, 161, 30, 71, 93},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG4[4][5] = {{25, 6, 29, 21, 21},{40, 28, 9, 29, 23},{2, 58, 21, 9, 39},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG4[4][5] = {{2, 77, 79, 17, 39},{2, 82, 37, 14, 53},{5, 19, 24, 26, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG4[4][5] = {{50, 138, 32, 66, 101},{29, 15, 80, 65, 68},{144, 115, 37, 126, 126},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG4[4][5] = {{208, 81, 67, 114, 184},{141, 195, 45, 91, 121},{174, 138, 96, 78, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG4[4][5] = {{45, 72, 216, 27, 168},{36, 144, 144, 0, 0},{72, 0, 2, 35, 144},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG4[4][5] = {{91, 319, 304, 288, 82},{326, 236, 237, 83, 67},{268, 85, 135, 17, 235},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG4[4][5] = {{25, 70, 29, 21, 21},{104, 92, 9, 29, 23},{66, 122, 21, 9, 39},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG4[4][5] = {{2, 77, 175, 113, 135},{2, 82, 37, 14, 149},{101, 115, 120, 26, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG4[4][5] = {{210, 298, 32, 226, 101},{29, 15, 80, 65, 228},{304, 115, 197, 126, 126},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG4[4][5] = {{25, 198, 157, 149, 149},{104, 220, 137, 157, 151},{194, 122, 149, 137, 167},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG4[4][5] = {{194, 269, 175, 113, 135},{194, 82, 37, 14, 149},{101, 115, 312, 218, 15},{0, 0, 0, 0, 0}}; - -// Group of CNs with 5 BNs (CNG5) ->[Num BNs][Num of CN with 5 BNs] -static const uint16_t circShift_BG1_Z2_CNG5[5][18] = {{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1},{0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1},{0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1},{0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG5[5][18] = {{0, 0, 0, 2, 0, 0, 0, 1, 0, 2, 2, 2, 0, 2, 0, 1, 2, 2},{2, 2, 2, 0, 1, 2, 1, 2, 0, 2, 1, 2, 1, 0, 0, 2, 0, 0},{2, 1, 2, 1, 1, 0, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1},{1, 0, 0, 1, 1, 0, 0, 1, 2, 0, 0, 2, 0, 1, 0, 0, 0, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG5[5][18] = {{2, 4, 2, 0, 1, 2, 1, 2, 0, 0, 2, 2, 4, 1, 2, 4, 3, 4},{0, 0, 0, 0, 3, 3, 3, 3, 2, 0, 1, 3, 4, 4, 2, 2, 4, 2},{0, 3, 1, 3, 0, 2, 0, 1, 1, 0, 0, 0, 3, 4, 2, 4, 1, 4},{1, 0, 1, 2, 4, 4, 0, 2, 2, 3, 4, 0, 0, 1, 3, 2, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG5[5][18] = {{4, 4, 1, 2, 6, 3, 6, 0, 3, 2, 5, 3, 5, 4, 5, 2, 3, 0},{0, 0, 5, 1, 6, 4, 4, 0, 6, 0, 4, 5, 3, 6, 0, 5, 1, 4},{3, 0, 2, 2, 0, 4, 0, 2, 2, 0, 5, 5, 0, 3, 0, 4, 1, 2},{1, 3, 4, 1, 2, 5, 4, 2, 2, 4, 3, 5, 6, 3, 2, 6, 0, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG5[5][18] = {{0, 0, 7, 0, 5, 0, 0, 0, 0, 0, 8, 1, 0, 1, 0, 0, 7, 0},{0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 7, 0, 0, 0, 0, 0},{0, 0, 0, 0, 2, 0, 0, 4, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0},{5, 3, 3, 7, 8, 6, 2, 1, 0, 0, 0, 7, 0, 0, 0, 3, 0, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG5[5][18] = {{5, 7, 4, 6, 3, 9, 6, 2, 10, 1, 5, 1, 3, 10, 5, 2, 1, 2},{3, 6, 2, 7, 1, 5, 5, 0, 1, 7, 1, 1, 4, 9, 0, 0, 3, 2},{5, 5, 1, 6, 7, 1, 7, 4, 8, 9, 2, 8, 2, 0, 4, 3, 9, 7},{3, 7, 10, 0, 2, 8, 3, 2, 6, 2, 10, 4, 1, 4, 8, 8, 2, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG5[5][18] = {{5, 6, 4, 8, 4, 1, 2, 4, 6, 10, 4, 4, 6, 0, 4, 2, 1, 4},{6, 5, 9, 12, 1, 6, 10, 10, 9, 4, 10, 6, 5, 12, 2, 10, 7, 6},{0, 2, 3, 10, 1, 2, 8, 8, 11, 6, 2, 12, 8, 3, 5, 12, 8, 12},{1, 9, 2, 2, 2, 6, 7, 12, 7, 1, 12, 3, 4, 9, 6, 11, 7, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG5[5][18] = {{10, 5, 12, 13, 2, 7, 5, 13, 13, 4, 11, 6, 11, 1, 10, 8, 7, 11},{2, 7, 6, 11, 13, 2, 4, 14, 5, 12, 12, 9, 12, 0, 8, 9, 7, 1},{6, 12, 11, 4, 5, 13, 11, 10, 1, 7, 7, 10, 12, 11, 3, 5, 4, 7},{13, 4, 1, 8, 10, 13, 0, 3, 1, 5, 0, 10, 10, 5, 7, 9, 5, 13},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG5[5][18] = {{0, 0, 3, 3, 0, 2, 0, 3, 1, 2, 3, 1, 1, 3, 1, 3, 3, 3},{2, 3, 0, 3, 1, 0, 1, 1, 0, 3, 3, 1, 1, 3, 3, 1, 3, 1},{0, 2, 0, 3, 1, 0, 0, 0, 3, 1, 0, 3, 3, 1, 1, 3, 1, 3},{2, 0, 2, 1, 3, 2, 1, 1, 1, 3, 3, 3, 0, 3, 0, 3, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG5[5][18] = {{0, 0, 0, 5, 0, 0, 3, 4, 0, 5, 2, 2, 0, 5, 0, 4, 5, 2},{5, 5, 5, 3, 1, 5, 1, 5, 3, 2, 4, 5, 1, 3, 3, 2, 0, 0},{5, 1, 5, 4, 4, 3, 2, 0, 1, 1, 4, 2, 3, 1, 4, 1, 0, 1},{4, 3, 0, 4, 4, 0, 0, 4, 5, 3, 0, 2, 3, 4, 3, 0, 0, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG5[5][18] = {{7, 9, 2, 0, 1, 7, 1, 2, 0, 0, 7, 7, 9, 1, 2, 4, 8, 4},{0, 0, 5, 0, 3, 8, 3, 8, 2, 0, 6, 8, 9, 9, 7, 7, 9, 7},{5, 3, 6, 8, 0, 7, 5, 6, 1, 0, 5, 5, 8, 4, 2, 4, 6, 9},{6, 5, 6, 7, 4, 9, 5, 2, 7, 3, 4, 5, 0, 1, 8, 7, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG5[5][18] = {{11, 4, 1, 9, 6, 10, 6, 7, 10, 2, 12, 10, 12, 11, 12, 9, 10, 0},{0, 7, 12, 8, 13, 11, 4, 7, 13, 7, 4, 5, 3, 6, 7, 5, 8, 4},{3, 0, 9, 2, 7, 11, 0, 9, 2, 7, 12, 12, 0, 3, 7, 4, 8, 9},{8, 10, 11, 1, 2, 12, 11, 2, 2, 11, 10, 5, 6, 10, 2, 13, 7, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG5[5][18] = {{0, 0, 7, 0, 5, 0, 0, 0, 0, 0, 17, 1, 0, 10, 9, 0, 16, 0},{9, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 16, 0, 0, 0, 9, 0},{0, 0, 0, 0, 11, 0, 0, 4, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0},{5, 3, 3, 7, 8, 6, 11, 1, 0, 0, 0, 7, 0, 0, 9, 3, 0, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG5[5][18] = {{16, 18, 15, 17, 14, 9, 17, 13, 21, 12, 16, 12, 3, 10, 16, 13, 12, 13},{3, 6, 13, 18, 1, 16, 16, 11, 1, 18, 12, 12, 15, 20, 0, 11, 3, 2},{16, 5, 1, 6, 18, 1, 7, 15, 8, 9, 2, 19, 13, 11, 15, 3, 9, 7},{3, 18, 10, 11, 13, 19, 14, 2, 17, 13, 10, 4, 12, 4, 8, 8, 13, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG5[5][18] = {{18, 19, 4, 21, 4, 14, 2, 4, 6, 10, 4, 4, 6, 13, 4, 2, 1, 4},{6, 18, 22, 12, 1, 6, 10, 23, 22, 4, 23, 19, 18, 12, 2, 23, 7, 6},{0, 2, 16, 10, 14, 2, 8, 21, 11, 6, 15, 12, 21, 16, 5, 12, 21, 12},{1, 22, 2, 15, 15, 6, 20, 12, 20, 14, 25, 3, 17, 22, 6, 24, 20, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG5[5][18] = {{25, 5, 27, 13, 2, 22, 20, 13, 13, 19, 11, 21, 11, 1, 25, 23, 22, 11},{17, 7, 21, 11, 13, 2, 19, 29, 20, 12, 27, 24, 27, 0, 8, 9, 7, 1},{6, 27, 11, 19, 20, 28, 26, 25, 1, 22, 22, 25, 12, 26, 18, 5, 19, 7},{28, 19, 1, 8, 25, 13, 15, 18, 1, 5, 0, 10, 10, 20, 22, 24, 5, 28},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG5[5][18] = {{0, 4, 7, 3, 0, 6, 0, 7, 5, 2, 7, 1, 5, 7, 5, 7, 7, 3},{6, 3, 0, 3, 5, 4, 1, 1, 0, 3, 7, 5, 1, 7, 3, 5, 3, 5},{4, 2, 4, 7, 5, 4, 0, 4, 7, 1, 4, 7, 3, 5, 5, 3, 5, 3},{6, 0, 6, 5, 7, 6, 1, 5, 1, 3, 7, 7, 0, 3, 0, 7, 3, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG5[5][18] = {{6, 0, 0, 11, 6, 0, 3, 4, 6, 11, 2, 8, 6, 5, 6, 4, 5, 8},{11, 5, 5, 9, 7, 5, 1, 11, 9, 8, 4, 11, 1, 9, 9, 2, 0, 6},{5, 1, 11, 4, 4, 3, 8, 6, 7, 1, 10, 2, 9, 1, 10, 7, 6, 7},{10, 3, 0, 4, 10, 6, 6, 4, 11, 9, 0, 2, 9, 10, 9, 0, 0, 10},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG5[5][18] = {{17, 9, 12, 10, 11, 7, 11, 2, 10, 10, 7, 7, 19, 11, 2, 14, 8, 14},{0, 10, 15, 10, 13, 8, 3, 8, 2, 0, 16, 18, 19, 19, 17, 7, 9, 7},{15, 13, 16, 18, 10, 17, 5, 6, 11, 0, 5, 15, 18, 4, 12, 4, 16, 19},{16, 5, 6, 7, 14, 9, 15, 2, 17, 13, 4, 5, 0, 1, 8, 7, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG5[5][18] = {{25, 4, 1, 23, 6, 10, 6, 7, 24, 2, 26, 24, 26, 11, 12, 23, 10, 0},{0, 7, 26, 8, 13, 11, 18, 21, 13, 21, 18, 5, 17, 6, 21, 19, 22, 4},{3, 0, 9, 16, 21, 25, 14, 9, 2, 21, 12, 26, 0, 17, 21, 4, 22, 9},{8, 10, 25, 15, 2, 12, 11, 16, 2, 25, 10, 19, 6, 10, 2, 27, 21, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG5[5][18] = {{0, 0, 25, 0, 23, 0, 0, 0, 0, 0, 17, 19, 0, 10, 9, 0, 16, 18},{9, 0, 0, 0, 0, 0, 18, 0, 31, 0, 0, 26, 16, 0, 0, 0, 27, 0},{0, 0, 0, 0, 11, 0, 0, 22, 0, 4, 0, 0, 0, 0, 21, 0, 0, 0},{5, 21, 3, 25, 26, 6, 29, 19, 18, 18, 0, 25, 0, 0, 9, 3, 18, 21},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG5[5][18] = {{16, 18, 15, 17, 14, 9, 39, 13, 43, 12, 16, 12, 3, 32, 16, 35, 34, 35},{25, 6, 35, 18, 1, 16, 16, 33, 1, 40, 12, 34, 15, 20, 0, 33, 3, 24},{16, 5, 23, 6, 40, 23, 7, 15, 30, 9, 24, 19, 35, 33, 37, 25, 9, 29},{25, 40, 10, 11, 35, 19, 36, 2, 39, 13, 10, 4, 12, 26, 8, 8, 35, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG5[5][18] = {{44, 45, 4, 21, 4, 40, 2, 4, 6, 10, 4, 4, 6, 39, 4, 2, 1, 4},{6, 18, 22, 38, 1, 32, 36, 49, 22, 30, 49, 45, 44, 12, 28, 23, 7, 6},{26, 28, 16, 36, 40, 2, 8, 21, 11, 6, 41, 12, 21, 42, 5, 38, 47, 38},{27, 48, 28, 41, 41, 6, 20, 38, 20, 40, 51, 29, 43, 48, 32, 24, 46, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG5[5][18] = {{25, 5, 27, 43, 32, 52, 50, 13, 43, 19, 41, 51, 11, 1, 55, 53, 22, 11},{47, 7, 21, 11, 43, 32, 19, 29, 50, 12, 57, 54, 27, 30, 8, 9, 7, 31},{6, 57, 11, 49, 20, 58, 26, 55, 31, 52, 22, 25, 42, 26, 48, 35, 49, 7},{58, 19, 1, 38, 25, 43, 45, 48, 31, 5, 0, 40, 40, 20, 52, 24, 5, 28},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG5[5][18] = {{0, 12, 7, 3, 0, 6, 8, 15, 13, 2, 15, 1, 5, 7, 13, 7, 7, 11},{14, 3, 8, 3, 5, 12, 9, 1, 0, 11, 7, 5, 9, 7, 11, 13, 3, 13},{12, 10, 4, 7, 5, 4, 8, 12, 7, 9, 4, 15, 3, 13, 5, 11, 13, 3},{14, 8, 6, 13, 15, 6, 9, 13, 9, 3, 15, 7, 8, 3, 0, 7, 11, 13},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG5[5][18] = {{6, 0, 0, 23, 6, 12, 15, 4, 6, 11, 14, 8, 18, 17, 18, 4, 17, 8},{11, 17, 17, 9, 19, 5, 13, 23, 9, 8, 4, 23, 1, 9, 21, 2, 12, 6},{17, 13, 23, 4, 4, 3, 20, 18, 7, 1, 10, 2, 9, 1, 10, 19, 18, 19},{22, 3, 0, 16, 10, 6, 18, 16, 23, 9, 0, 2, 21, 22, 9, 0, 0, 10},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG5[5][18] = {{17, 9, 12, 30, 11, 27, 11, 22, 10, 10, 27, 7, 19, 31, 22, 34, 28, 34},{20, 10, 15, 30, 13, 28, 23, 28, 22, 20, 16, 38, 19, 19, 37, 7, 29, 27},{15, 13, 16, 38, 10, 37, 25, 26, 31, 20, 5, 15, 18, 24, 32, 4, 16, 19},{36, 25, 6, 27, 34, 29, 15, 2, 17, 33, 4, 5, 0, 21, 8, 7, 22, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG5[5][18] = {{53, 32, 1, 51, 34, 38, 34, 7, 24, 2, 26, 24, 54, 11, 12, 23, 38, 28},{0, 35, 54, 8, 41, 11, 18, 49, 41, 49, 18, 5, 45, 34, 21, 47, 22, 4},{3, 0, 9, 44, 49, 53, 42, 9, 2, 49, 12, 26, 0, 17, 49, 4, 22, 9},{36, 10, 25, 15, 2, 12, 11, 16, 30, 25, 38, 19, 6, 10, 2, 55, 49, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG5[5][18] = {{0, 36, 61, 0, 59, 0, 0, 0, 0, 0, 53, 55, 0, 46, 9, 0, 52, 18},{45, 0, 0, 0, 0, 36, 18, 0, 67, 0, 0, 62, 16, 0, 0, 0, 27, 0},{0, 0, 0, 0, 11, 0, 36, 22, 36, 4, 36, 0, 0, 0, 21, 0, 0, 0},{41, 21, 39, 61, 62, 42, 29, 19, 18, 18, 0, 61, 0, 0, 45, 39, 54, 57},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG5[5][18] = {{16, 18, 15, 61, 14, 9, 83, 13, 87, 56, 60, 12, 47, 76, 60, 35, 34, 79},{69, 6, 79, 62, 1, 16, 16, 33, 1, 40, 56, 34, 15, 20, 0, 77, 3, 68},{60, 5, 23, 50, 40, 67, 7, 15, 74, 53, 24, 19, 35, 33, 37, 25, 53, 29},{25, 40, 54, 11, 79, 19, 36, 46, 83, 13, 54, 4, 12, 70, 8, 8, 79, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG5[5][18] = {{44, 45, 4, 21, 4, 92, 2, 4, 6, 10, 4, 4, 6, 91, 4, 2, 1, 4},{58, 18, 74, 38, 1, 32, 88, 49, 22, 30, 49, 45, 96, 64, 28, 75, 59, 6},{26, 28, 16, 88, 40, 2, 8, 21, 63, 6, 93, 64, 73, 94, 5, 38, 99, 38},{27, 100, 28, 93, 93, 6, 20, 90, 20, 92, 51, 81, 43, 100, 84, 24, 98, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG5[5][18] = {{25, 65, 27, 43, 32, 112, 50, 73, 103, 79, 41, 111, 11, 1, 115, 53, 22, 71},{47, 7, 21, 11, 43, 32, 79, 29, 110, 12, 117, 54, 87, 90, 68, 69, 7, 91},{6, 117, 11, 49, 80, 118, 26, 55, 31, 52, 22, 25, 42, 26, 48, 95, 49, 67},{58, 79, 61, 98, 85, 103, 105, 108, 91, 65, 60, 100, 100, 20, 52, 24, 5, 28},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG5[5][18] = {{0, 28, 23, 3, 0, 22, 24, 31, 29, 2, 31, 1, 5, 7, 13, 7, 23, 11},{14, 19, 8, 19, 5, 12, 9, 17, 16, 27, 7, 5, 9, 23, 11, 13, 3, 29},{28, 10, 20, 23, 21, 20, 24, 12, 7, 9, 4, 15, 19, 29, 21, 11, 13, 3},{30, 24, 22, 29, 31, 6, 9, 29, 25, 19, 31, 7, 24, 3, 0, 23, 11, 13},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG5[5][18] = {{30, 24, 24, 23, 30, 12, 15, 4, 6, 35, 38, 32, 18, 41, 18, 4, 17, 32},{11, 41, 17, 33, 19, 5, 37, 23, 9, 8, 4, 47, 25, 33, 45, 26, 36, 30},{41, 13, 47, 28, 4, 3, 20, 18, 31, 25, 10, 2, 9, 1, 10, 43, 18, 19},{22, 27, 24, 40, 34, 30, 42, 16, 47, 9, 24, 26, 21, 22, 9, 0, 24, 34},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG5[5][18] = {{17, 9, 12, 30, 11, 27, 11, 62, 50, 10, 27, 47, 19, 71, 22, 74, 68, 74},{20, 50, 55, 30, 53, 68, 23, 68, 22, 20, 56, 78, 19, 19, 77, 47, 69, 67},{55, 53, 16, 78, 50, 37, 25, 66, 31, 60, 5, 55, 18, 64, 32, 44, 16, 19},{76, 25, 46, 67, 74, 29, 55, 2, 57, 33, 44, 45, 0, 21, 48, 47, 22, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG5[5][18] = {{53, 88, 1, 107, 34, 38, 34, 63, 80, 2, 82, 80, 110, 11, 12, 23, 94, 84},{0, 91, 54, 64, 41, 11, 18, 49, 97, 49, 74, 61, 45, 90, 77, 103, 22, 4},{3, 56, 65, 100, 105, 53, 98, 65, 58, 49, 68, 26, 0, 73, 49, 60, 22, 9},{36, 10, 81, 15, 2, 68, 11, 16, 30, 25, 38, 75, 6, 10, 2, 55, 49, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG5[5][18] = {{72, 36, 61, 0, 131, 0, 0, 0, 0, 0, 53, 55, 72, 46, 9, 0, 52, 18},{45, 0, 0, 0, 0, 36, 90, 0, 67, 0, 0, 134, 16, 0, 0, 0, 99, 0},{72, 0, 0, 0, 11, 0, 108, 22, 36, 76, 108, 0, 0, 0, 21, 0, 0, 0},{113, 21, 39, 133, 62, 42, 29, 19, 18, 18, 0, 61, 0, 0, 117, 39, 126, 57},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG5[5][18] = {{104, 18, 103, 149, 102, 97, 171, 101, 175, 56, 60, 100, 135, 164, 60, 123, 34, 79},{157, 6, 79, 150, 1, 104, 16, 121, 89, 128, 144, 34, 15, 20, 88, 77, 3, 68},{60, 5, 111, 50, 40, 67, 95, 103, 162, 141, 112, 19, 35, 33, 37, 25, 53, 117},{113, 128, 54, 99, 167, 107, 36, 46, 83, 101, 54, 92, 12, 70, 96, 96, 167, 96},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG5[5][18] = {{44, 45, 4, 21, 4, 92, 2, 4, 6, 10, 4, 4, 6, 91, 4, 2, 1, 4},{58, 18, 74, 142, 1, 136, 88, 49, 126, 30, 153, 45, 200, 64, 28, 75, 163, 6},{130, 132, 16, 192, 40, 106, 112, 125, 63, 6, 197, 168, 177, 198, 109, 142, 99, 142},{131, 100, 28, 197, 93, 6, 20, 194, 20, 92, 155, 185, 43, 100, 188, 128, 98, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG5[5][18] = {{25, 185, 27, 163, 32, 232, 170, 73, 103, 199, 161, 231, 11, 121, 115, 53, 22, 191},{47, 127, 141, 131, 43, 32, 199, 149, 110, 132, 237, 174, 207, 90, 188, 189, 127, 211},{126, 117, 11, 169, 200, 118, 26, 175, 151, 172, 142, 145, 42, 26, 168, 215, 49, 187},{178, 199, 181, 98, 205, 103, 105, 108, 211, 65, 180, 100, 100, 140, 52, 24, 125, 148},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG5[5][18] = {{0, 28, 23, 3, 0, 22, 24, 31, 29, 2, 63, 33, 37, 39, 45, 39, 23, 11},{14, 19, 8, 51, 37, 44, 9, 49, 48, 59, 39, 5, 41, 23, 11, 45, 35, 29},{60, 42, 52, 23, 53, 20, 56, 44, 7, 41, 36, 15, 51, 29, 21, 11, 45, 35},{30, 24, 54, 61, 63, 6, 9, 61, 57, 19, 31, 39, 56, 35, 0, 23, 11, 45},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG5[5][18] = {{30, 24, 72, 71, 30, 60, 63, 4, 6, 35, 38, 32, 18, 89, 66, 52, 17, 80},{11, 89, 17, 81, 19, 5, 37, 23, 9, 8, 52, 47, 25, 81, 93, 26, 36, 78},{41, 61, 95, 76, 52, 51, 68, 66, 79, 73, 10, 2, 9, 1, 58, 43, 18, 67},{22, 27, 24, 40, 82, 78, 90, 64, 95, 9, 24, 74, 21, 22, 9, 0, 72, 82},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG5[5][18] = {{17, 89, 12, 110, 11, 27, 91, 62, 50, 10, 27, 47, 99, 151, 102, 154, 68, 74},{20, 50, 135, 110, 133, 148, 23, 148, 22, 20, 136, 158, 19, 19, 77, 47, 69, 67},{55, 133, 96, 158, 50, 117, 105, 66, 111, 140, 5, 55, 18, 64, 32, 124, 16, 99},{156, 105, 46, 67, 74, 29, 135, 2, 57, 33, 44, 125, 0, 21, 48, 47, 102, 100},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG5[5][18] = {{53, 88, 1, 107, 146, 150, 34, 175, 192, 114, 82, 192, 222, 123, 12, 23, 206, 84},{0, 203, 166, 176, 153, 11, 130, 49, 209, 49, 186, 173, 157, 90, 77, 215, 22, 4},{3, 168, 65, 212, 217, 53, 210, 177, 58, 161, 68, 26, 0, 73, 49, 60, 134, 9},{148, 122, 81, 127, 114, 68, 123, 128, 30, 137, 150, 187, 6, 10, 114, 167, 161, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG5[5][18] = {{72, 180, 205, 0, 275, 0, 0, 144, 0, 0, 197, 199, 216, 190, 153, 0, 52, 18},{189, 0, 0, 0, 0, 180, 90, 144, 211, 0, 0, 278, 16, 0, 0, 0, 243, 0},{72, 0, 0, 0, 155, 0, 252, 166, 36, 76, 108, 0, 0, 0, 165, 0, 0, 0},{257, 165, 183, 277, 62, 42, 173, 19, 162, 18, 0, 205, 0, 0, 117, 183, 270, 57},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG5[5][18] = {{280, 18, 279, 325, 102, 273, 171, 101, 351, 56, 60, 100, 135, 164, 236, 123, 210, 79},{157, 6, 255, 326, 1, 104, 16, 297, 265, 304, 320, 210, 15, 196, 264, 77, 3, 244},{236, 181, 111, 226, 40, 243, 95, 279, 338, 141, 112, 195, 35, 209, 37, 25, 53, 293},{113, 304, 54, 99, 167, 107, 212, 222, 83, 101, 54, 268, 188, 246, 272, 272, 167, 272},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG5[5][18] = {{64, 28, 23, 67, 0, 86, 88, 95, 93, 2, 127, 33, 37, 39, 45, 39, 23, 11},{14, 19, 8, 115, 37, 108, 73, 49, 112, 59, 39, 69, 105, 23, 11, 45, 35, 29},{60, 42, 116, 87, 53, 84, 120, 44, 71, 41, 36, 79, 51, 29, 21, 11, 45, 35},{30, 24, 54, 61, 63, 6, 9, 61, 121, 83, 31, 103, 120, 35, 0, 23, 11, 45},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG5[5][18] = {{30, 24, 72, 71, 30, 60, 159, 100, 102, 131, 38, 128, 18, 185, 66, 52, 113, 80},{11, 89, 17, 81, 19, 5, 37, 23, 9, 8, 148, 143, 121, 177, 93, 122, 132, 78},{41, 61, 191, 76, 52, 147, 68, 66, 175, 169, 10, 2, 105, 97, 154, 139, 114, 163},{22, 27, 120, 136, 82, 78, 90, 64, 95, 105, 120, 74, 21, 22, 105, 96, 168, 82},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG5[5][18] = {{177, 249, 172, 270, 11, 27, 91, 222, 210, 170, 187, 207, 259, 151, 102, 154, 228, 234},{20, 50, 295, 110, 293, 308, 23, 308, 22, 20, 296, 158, 179, 179, 77, 47, 69, 227},{55, 133, 96, 318, 50, 117, 105, 66, 271, 140, 5, 55, 178, 64, 192, 124, 176, 259},{316, 105, 46, 67, 234, 29, 135, 162, 217, 33, 44, 285, 160, 181, 208, 207, 102, 260},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG5[5][18] = {{64, 156, 23, 195, 128, 86, 216, 95, 221, 2, 127, 161, 37, 167, 173, 167, 151, 139},{142, 147, 136, 243, 165, 236, 73, 177, 112, 187, 167, 197, 105, 151, 139, 173, 163, 157},{188, 170, 116, 215, 181, 84, 120, 172, 199, 41, 164, 207, 51, 157, 149, 139, 173, 163},{158, 152, 182, 61, 63, 6, 9, 61, 121, 211, 159, 103, 120, 163, 0, 151, 139, 173},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG5[5][18] = {{30, 24, 72, 71, 222, 252, 159, 100, 102, 323, 230, 320, 210, 185, 258, 52, 113, 80},{11, 89, 17, 81, 19, 5, 229, 215, 201, 8, 148, 335, 313, 177, 93, 314, 132, 78},{233, 61, 383, 76, 244, 147, 260, 258, 175, 361, 202, 2, 297, 289, 346, 139, 114, 163},{22, 27, 312, 136, 274, 78, 90, 256, 287, 105, 312, 266, 21, 214, 297, 288, 168, 274},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - -// Group of CNs with 6 BNs (CNG6) ->[Num BNs][Num of CN with 6 BNs] -static const uint16_t circShift_BG1_Z2_CNG6[6][8] = {{1, 0, 1, 0, 0, 1, 1, 0},{0, 1, 0, 1, 1, 0, 1, 0},{1, 1, 1, 0, 0, 1, 1, 0},{1, 1, 1, 1, 1, 1, 1, 0},{0, 0, 0, 1, 0, 0, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG6[6][8] = {{1, 1, 2, 1, 1, 1, 1, 1},{0, 2, 0, 1, 0, 2, 0, 2},{2, 0, 0, 1, 2, 0, 1, 1},{1, 1, 1, 0, 2, 2, 0, 0},{1, 0, 0, 1, 2, 2, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG6[6][8] = {{4, 4, 2, 0, 4, 1, 4, 4},{2, 0, 2, 4, 1, 2, 0, 0},{3, 0, 3, 1, 1, 0, 2, 0},{0, 0, 1, 1, 0, 0, 3, 2},{2, 0, 3, 0, 1, 0, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG6[6][8] = {{4, 0, 0, 3, 1, 0, 3, 0},{0, 3, 5, 5, 6, 0, 5, 3},{2, 1, 4, 4, 5, 2, 3, 1},{0, 0, 0, 3, 2, 4, 1, 4},{1, 3, 4, 4, 1, 1, 1, 5},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG6[6][8] = {{6, 0, 0, 8, 0, 4, 1, 2},{0, 4, 2, 7, 0, 0, 1, 1},{0, 0, 0, 0, 1, 0, 5, 0},{2, 0, 0, 7, 0, 0, 0, 5},{0, 0, 0, 0, 0, 3, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG6[6][8] = {{3, 3, 0, 3, 10, 1, 8, 5},{9, 7, 8, 0, 0, 10, 0, 5},{1, 2, 5, 4, 4, 1, 5, 7},{6, 1, 6, 5, 5, 2, 0, 2},{4, 4, 3, 7, 6, 8, 10, 7},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG6[6][8] = {{0, 10, 0, 1, 12, 6, 6, 9},{4, 3, 2, 2, 6, 12, 8, 8},{1, 4, 4, 11, 10, 2, 5, 9},{3, 5, 3, 3, 2, 5, 3, 2},{7, 0, 12, 5, 9, 4, 4, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG6[6][8] = {{10, 3, 3, 3, 14, 2, 2, 2},{5, 2, 7, 5, 3, 7, 2, 13},{4, 9, 1, 0, 9, 8, 5, 2},{13, 5, 9, 8, 3, 2, 5, 6},{0, 10, 9, 14, 1, 10, 6, 13},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG6[6][8] = {{1, 0, 3, 2, 0, 3, 1, 0},{0, 1, 0, 1, 1, 2, 1, 2},{3, 1, 3, 0, 0, 1, 1, 0},{1, 3, 1, 3, 3, 3, 3, 0},{2, 2, 0, 3, 0, 0, 3, 2},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG6[6][8] = {{1, 1, 2, 4, 1, 1, 1, 4},{3, 2, 3, 1, 3, 2, 0, 2},{2, 3, 3, 4, 2, 0, 4, 1},{1, 1, 4, 0, 2, 5, 3, 3},{4, 3, 3, 4, 5, 5, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG6[6][8] = {{9, 9, 7, 0, 4, 1, 9, 9},{2, 0, 7, 4, 1, 2, 5, 0},{3, 5, 8, 1, 1, 0, 2, 0},{0, 5, 1, 1, 0, 0, 3, 7},{7, 0, 8, 5, 1, 0, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG6[6][8] = {{11, 0, 0, 3, 8, 7, 10, 7},{0, 10, 12, 12, 6, 0, 5, 3},{2, 1, 4, 4, 5, 9, 10, 8},{7, 7, 7, 3, 2, 4, 8, 11},{8, 3, 4, 4, 8, 1, 8, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG6[6][8] = {{15, 0, 9, 17, 0, 13, 10, 2},{0, 13, 11, 7, 0, 9, 10, 1},{0, 9, 0, 0, 10, 0, 14, 0},{11, 0, 0, 7, 0, 0, 9, 14},{0, 0, 0, 0, 0, 12, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG6[6][8] = {{3, 14, 0, 3, 21, 1, 8, 16},{9, 7, 8, 0, 0, 21, 0, 16},{1, 2, 5, 4, 15, 1, 16, 7},{6, 1, 6, 5, 16, 2, 11, 2},{15, 4, 14, 7, 6, 8, 21, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG6[6][8] = {{0, 10, 13, 1, 12, 6, 6, 9},{17, 16, 2, 15, 6, 12, 8, 21},{1, 4, 4, 11, 10, 15, 18, 9},{16, 18, 3, 16, 2, 5, 16, 2},{20, 0, 25, 18, 9, 4, 17, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG6[6][8] = {{10, 18, 3, 3, 29, 17, 17, 2},{5, 2, 22, 5, 18, 7, 2, 28},{4, 24, 16, 0, 9, 23, 5, 2},{28, 5, 9, 23, 18, 17, 5, 6},{0, 25, 9, 14, 16, 10, 6, 28},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG6[6][8] = {{1, 0, 7, 2, 4, 7, 1, 0},{0, 1, 4, 1, 1, 2, 1, 6},{7, 1, 3, 0, 0, 1, 5, 4},{1, 3, 1, 3, 7, 7, 3, 4},{6, 2, 0, 3, 0, 0, 3, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG6[6][8] = {{1, 1, 8, 10, 1, 7, 1, 10},{9, 2, 3, 7, 9, 2, 6, 2},{2, 9, 9, 4, 8, 0, 4, 7},{7, 1, 10, 0, 2, 5, 9, 3},{10, 9, 3, 4, 5, 11, 1, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG6[6][8] = {{19, 9, 17, 0, 4, 1, 19, 9},{2, 0, 7, 14, 1, 2, 15, 0},{3, 5, 8, 11, 1, 0, 12, 10},{0, 15, 11, 1, 10, 10, 3, 7},{17, 0, 8, 15, 1, 10, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG6[6][8] = {{25, 14, 0, 3, 8, 21, 24, 21},{0, 24, 26, 26, 6, 14, 19, 17},{16, 15, 4, 4, 19, 9, 24, 8},{21, 21, 7, 3, 2, 18, 22, 25},{22, 17, 4, 18, 8, 15, 22, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG6[6][8] = {{15, 18, 9, 17, 0, 13, 28, 20},{0, 13, 29, 7, 0, 9, 10, 19},{0, 27, 0, 0, 10, 18, 14, 0},{11, 18, 0, 25, 0, 0, 9, 14},{0, 0, 18, 0, 0, 12, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG6[6][8] = {{3, 14, 22, 3, 43, 1, 30, 38},{31, 29, 8, 22, 22, 21, 0, 38},{1, 24, 27, 26, 15, 23, 38, 29},{6, 23, 28, 5, 38, 24, 11, 24},{37, 26, 14, 29, 28, 30, 21, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG6[6][8] = {{0, 36, 39, 1, 12, 6, 6, 9},{43, 42, 28, 41, 6, 12, 34, 21},{1, 4, 30, 11, 10, 15, 44, 35},{16, 18, 3, 16, 28, 5, 42, 28},{46, 26, 51, 44, 35, 30, 43, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG6[6][8] = {{40, 18, 3, 3, 59, 17, 17, 32},{5, 32, 52, 35, 48, 7, 2, 58},{34, 24, 46, 0, 39, 23, 35, 2},{58, 5, 39, 23, 18, 47, 5, 36},{30, 25, 9, 14, 16, 10, 36, 58},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG6[6][8] = {{1, 0, 7, 10, 12, 7, 9, 0},{8, 1, 4, 9, 9, 10, 9, 6},{7, 1, 11, 8, 8, 9, 13, 12},{9, 3, 1, 11, 15, 15, 3, 4},{14, 10, 0, 3, 0, 0, 11, 14},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG6[6][8] = {{1, 13, 20, 10, 1, 19, 13, 10},{9, 2, 15, 19, 21, 14, 6, 14},{2, 9, 9, 16, 8, 0, 16, 19},{19, 1, 22, 12, 2, 5, 21, 3},{10, 9, 15, 4, 5, 11, 1, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG6[6][8] = {{39, 29, 17, 20, 24, 21, 39, 9},{22, 20, 27, 14, 21, 2, 15, 0},{23, 5, 8, 11, 21, 0, 12, 30},{0, 35, 11, 21, 30, 10, 3, 27},{37, 20, 28, 15, 1, 10, 23, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG6[6][8] = {{25, 42, 0, 31, 8, 49, 24, 49},{0, 52, 54, 54, 6, 42, 19, 45},{16, 43, 32, 32, 47, 9, 52, 8},{49, 21, 7, 31, 30, 46, 50, 25},{22, 45, 4, 18, 8, 15, 50, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG6[6][8] = {{15, 54, 9, 17, 0, 49, 64, 20},{0, 13, 65, 7, 0, 9, 46, 55},{0, 27, 0, 0, 46, 18, 50, 0},{47, 54, 0, 25, 0, 0, 9, 50},{36, 0, 18, 0, 0, 12, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG6[6][8] = {{47, 14, 22, 47, 87, 1, 74, 38},{75, 29, 52, 22, 22, 65, 0, 82},{1, 68, 71, 70, 59, 67, 82, 73},{6, 67, 28, 5, 82, 68, 55, 24},{81, 26, 14, 73, 28, 30, 21, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG6[6][8] = {{52, 88, 91, 1, 12, 6, 6, 9},{43, 94, 80, 41, 6, 12, 86, 21},{1, 56, 30, 63, 62, 15, 96, 87},{16, 18, 3, 68, 80, 5, 42, 28},{46, 78, 51, 44, 87, 30, 95, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG6[6][8] = {{100, 78, 63, 63, 59, 77, 77, 32},{65, 32, 112, 95, 108, 67, 2, 58},{34, 84, 106, 60, 39, 83, 95, 2},{58, 5, 99, 23, 18, 47, 65, 36},{30, 85, 9, 14, 76, 10, 96, 58},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG6[6][8] = {{17, 0, 7, 10, 28, 23, 25, 16},{24, 17, 4, 9, 9, 26, 25, 22},{23, 17, 27, 8, 8, 25, 13, 12},{25, 19, 1, 27, 31, 15, 3, 20},{30, 26, 16, 19, 0, 0, 11, 30},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG6[6][8] = {{25, 13, 20, 34, 1, 43, 13, 10},{33, 2, 15, 19, 21, 14, 6, 14},{26, 9, 33, 40, 8, 24, 40, 43},{19, 1, 22, 36, 2, 5, 21, 3},{34, 9, 39, 4, 5, 11, 1, 42},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG6[6][8] = {{39, 69, 17, 20, 64, 61, 79, 49},{62, 60, 67, 54, 21, 2, 15, 40},{63, 45, 48, 51, 21, 40, 52, 30},{0, 35, 51, 61, 30, 50, 43, 27},{37, 60, 68, 55, 41, 10, 23, 41},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG6[6][8] = {{81, 42, 56, 87, 8, 105, 80, 49},{56, 52, 110, 110, 6, 98, 19, 45},{72, 43, 88, 88, 103, 9, 108, 64},{105, 77, 63, 31, 86, 102, 50, 81},{78, 101, 4, 74, 8, 71, 106, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG6[6][8] = {{87, 126, 9, 17, 0, 121, 64, 92},{0, 13, 137, 7, 0, 81, 46, 55},{72, 99, 0, 0, 118, 90, 122, 0},{47, 54, 0, 97, 0, 0, 9, 122},{36, 0, 18, 0, 0, 84, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG6[6][8] = {{135, 14, 110, 47, 87, 89, 162, 38},{75, 117, 52, 110, 110, 65, 88, 170},{89, 156, 71, 70, 147, 155, 170, 73},{94, 155, 116, 5, 82, 68, 143, 112},{81, 114, 14, 73, 28, 30, 109, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG6[6][8] = {{52, 88, 91, 1, 12, 6, 6, 9},{147, 198, 184, 41, 6, 12, 86, 125},{1, 160, 30, 167, 166, 15, 96, 191},{16, 122, 3, 68, 184, 5, 42, 28},{46, 182, 155, 148, 191, 30, 199, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG6[6][8] = {{220, 78, 183, 183, 179, 77, 197, 32},{185, 152, 112, 215, 108, 187, 122, 178},{154, 84, 106, 180, 159, 203, 215, 2},{178, 5, 219, 143, 138, 167, 65, 156},{150, 205, 129, 14, 196, 130, 216, 58},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG6[6][8] = {{49, 0, 7, 42, 60, 23, 57, 48},{56, 49, 36, 41, 9, 58, 57, 22},{23, 49, 59, 8, 8, 25, 45, 44},{57, 51, 1, 27, 63, 47, 3, 52},{62, 26, 16, 19, 32, 32, 43, 30},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG6[6][8] = {{25, 13, 68, 34, 49, 91, 13, 10},{81, 50, 15, 67, 21, 14, 6, 62},{74, 57, 81, 88, 56, 72, 40, 43},{19, 1, 70, 36, 50, 53, 21, 51},{82, 57, 87, 4, 5, 59, 1, 42},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG6[6][8] = {{39, 69, 97, 100, 64, 141, 79, 129},{142, 140, 147, 134, 21, 2, 15, 120},{143, 45, 128, 131, 101, 40, 132, 110},{0, 115, 51, 141, 110, 130, 123, 27},{37, 140, 68, 135, 41, 10, 103, 121},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG6[6][8] = {{81, 154, 56, 199, 8, 105, 192, 49},{56, 164, 110, 110, 6, 210, 131, 157},{72, 43, 200, 200, 103, 121, 220, 64},{217, 189, 63, 143, 198, 214, 50, 193},{78, 101, 4, 186, 8, 183, 106, 124},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG6[6][8] = {{231, 270, 153, 161, 0, 265, 64, 236},{0, 13, 137, 151, 0, 81, 46, 199},{216, 99, 0, 0, 118, 90, 266, 0},{47, 54, 0, 241, 144, 144, 9, 266},{36, 0, 162, 144, 0, 228, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG6[6][8] = {{311, 190, 110, 47, 87, 89, 162, 38},{251, 293, 228, 286, 110, 65, 264, 170},{265, 332, 247, 246, 147, 155, 346, 249},{94, 331, 116, 181, 258, 244, 143, 288},{81, 114, 190, 73, 204, 30, 109, 194},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG6[6][8] = {{49, 64, 7, 42, 60, 23, 121, 112},{120, 49, 36, 105, 73, 58, 121, 86},{23, 49, 59, 8, 72, 89, 109, 108},{57, 51, 1, 27, 127, 47, 3, 116},{62, 26, 16, 19, 96, 32, 43, 94},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG6[6][8] = {{121, 13, 68, 130, 145, 187, 13, 106},{177, 146, 111, 163, 21, 14, 102, 158},{74, 57, 81, 88, 152, 72, 136, 43},{115, 97, 166, 132, 50, 149, 21, 147},{178, 57, 183, 4, 5, 59, 97, 42},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG6[6][8] = {{39, 69, 257, 260, 64, 301, 79, 289},{302, 140, 147, 294, 181, 162, 175, 280},{303, 45, 128, 291, 101, 40, 132, 110},{160, 115, 51, 141, 270, 130, 283, 187},{37, 300, 228, 295, 41, 10, 103, 281},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG6[6][8] = {{177, 64, 7, 42, 60, 151, 249, 112},{248, 49, 164, 233, 73, 186, 121, 86},{151, 49, 59, 8, 72, 217, 109, 236},{185, 51, 1, 155, 127, 47, 131, 116},{62, 154, 144, 147, 224, 160, 171, 222},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG6[6][8] = {{313, 13, 260, 130, 145, 187, 205, 298},{177, 338, 303, 163, 213, 206, 102, 158},{266, 57, 81, 280, 344, 264, 328, 235},{115, 289, 358, 132, 242, 341, 213, 339},{370, 57, 375, 4, 197, 59, 97, 234},{0, 0, 0, 0, 0, 0, 0, 0}}; - -// Group of CNs with 7 BNs (CNG7) ->[Num BNs][Num of CN with 7 BNs] -static const uint16_t circShift_BG1_Z2_CNG7[7][5] = {{0, 0, 0, 0, 0},{0, 1, 0, 1, 0},{1, 1, 1, 0, 1},{1, 0, 0, 1, 1},{1, 1, 0, 0, 1},{0, 0, 1, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG7[7][5] = {{0, 2, 2, 1, 1},{2, 0, 0, 2, 2},{1, 1, 0, 2, 0},{0, 0, 1, 2, 0},{2, 2, 2, 2, 1},{0, 0, 2, 0, 2},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG7[7][5] = {{2, 4, 4, 3, 4},{3, 0, 0, 4, 0},{2, 1, 4, 4, 0},{0, 0, 3, 1, 0},{0, 1, 0, 4, 4},{1, 1, 2, 3, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG7[7][5] = {{3, 5, 2, 0, 6},{6, 4, 0, 0, 1},{6, 6, 3, 1, 5},{2, 5, 3, 2, 6},{3, 5, 0, 2, 6},{4, 5, 0, 1, 4},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG7[7][5] = {{7, 7, 0, 0, 8},{0, 1, 0, 6, 0},{1, 1, 1, 1, 3},{4, 6, 7, 7, 0},{5, 0, 4, 0, 5},{2, 3, 0, 7, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG7[7][5] = {{3, 10, 2, 0, 0},{4, 0, 8, 3, 7},{4, 5, 10, 2, 4},{0, 0, 0, 2, 4},{6, 5, 0, 0, 0},{6, 3, 10, 1, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG7[7][5] = {{2, 9, 6, 1, 4},{10, 12, 7, 7, 6},{8, 0, 8, 1, 3},{10, 3, 10, 0, 0},{3, 12, 0, 1, 1},{11, 5, 12, 2, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG7[7][5] = {{2, 11, 6, 4, 9},{11, 1, 5, 9, 3},{14, 10, 4, 2, 10},{2, 5, 0, 5, 8},{1, 10, 8, 12, 7},{3, 9, 5, 1, 4},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG7[7][5] = {{0, 2, 0, 2, 0},{0, 1, 2, 3, 0},{3, 3, 1, 2, 1},{3, 0, 0, 3, 3},{3, 1, 2, 0, 3},{0, 2, 3, 1, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG7[7][5] = {{3, 5, 5, 4, 1},{2, 3, 0, 2, 2},{4, 4, 0, 5, 0},{3, 3, 4, 5, 0},{2, 5, 2, 5, 1},{0, 0, 2, 0, 5},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG7[7][5] = {{2, 4, 9, 8, 9},{8, 0, 5, 9, 0},{7, 1, 9, 4, 0},{0, 5, 8, 1, 0},{5, 1, 5, 9, 4},{6, 1, 2, 8, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG7[7][5] = {{3, 12, 2, 0, 6},{6, 11, 7, 7, 8},{6, 6, 10, 1, 5},{2, 5, 3, 9, 13},{10, 12, 0, 9, 13},{4, 5, 0, 1, 11},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG7[7][5] = {{7, 16, 9, 0, 8},{9, 1, 0, 6, 0},{10, 10, 10, 1, 3},{4, 15, 7, 16, 0},{14, 0, 4, 0, 14},{2, 3, 9, 7, 10},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG7[7][5] = {{3, 21, 13, 0, 0},{15, 11, 19, 14, 18},{4, 5, 10, 13, 15},{11, 11, 0, 2, 15},{17, 5, 0, 0, 0},{17, 3, 10, 12, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG7[7][5] = {{15, 22, 6, 1, 17},{10, 25, 20, 20, 6},{8, 0, 21, 14, 3},{23, 16, 23, 0, 0},{3, 12, 0, 1, 1},{24, 18, 25, 2, 20},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG7[7][5] = {{17, 26, 6, 4, 9},{26, 1, 5, 24, 18},{29, 10, 4, 2, 10},{2, 20, 0, 5, 23},{16, 25, 8, 12, 22},{18, 24, 20, 16, 19},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG7[7][5] = {{4, 2, 0, 6, 0},{4, 5, 2, 7, 0},{7, 7, 5, 6, 1},{7, 0, 0, 7, 7},{7, 1, 2, 0, 3},{0, 2, 7, 5, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG7[7][5] = {{9, 5, 5, 10, 1},{2, 3, 6, 8, 2},{4, 10, 6, 5, 6},{9, 3, 4, 5, 6},{2, 11, 2, 11, 7},{6, 6, 2, 0, 5},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG7[7][5] = {{12, 14, 9, 18, 9},{8, 0, 15, 19, 10},{7, 11, 9, 14, 0},{10, 15, 8, 1, 10},{5, 1, 5, 19, 4},{16, 11, 12, 18, 11},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG7[7][5] = {{17, 26, 2, 14, 6},{20, 25, 7, 7, 8},{20, 6, 24, 15, 19},{16, 19, 3, 23, 13},{10, 26, 0, 23, 13},{18, 19, 14, 15, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG7[7][5] = {{25, 34, 9, 0, 26},{9, 1, 18, 6, 0},{10, 28, 28, 1, 3},{4, 15, 7, 16, 0},{32, 18, 22, 0, 32},{20, 21, 27, 7, 28},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG7[7][5] = {{3, 43, 35, 22, 0},{15, 33, 41, 14, 40},{4, 27, 10, 13, 15},{33, 11, 22, 24, 37},{39, 5, 0, 22, 0},{39, 3, 32, 34, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG7[7][5] = {{41, 22, 6, 1, 17},{36, 25, 20, 46, 6},{8, 0, 47, 14, 29},{49, 16, 49, 26, 26},{3, 12, 0, 1, 1},{24, 18, 51, 2, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG7[7][5] = {{17, 56, 6, 4, 39},{26, 31, 35, 24, 18},{29, 10, 4, 2, 40},{32, 50, 0, 35, 53},{46, 55, 38, 12, 22},{18, 24, 20, 16, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG7[7][5] = {{12, 2, 0, 14, 8},{12, 5, 10, 7, 0},{15, 7, 5, 14, 1},{15, 0, 0, 15, 15},{7, 1, 10, 0, 11},{8, 10, 7, 5, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG7[7][5] = {{9, 5, 5, 22, 1},{14, 3, 18, 8, 2},{4, 10, 6, 17, 18},{21, 15, 16, 17, 6},{2, 23, 2, 11, 7},{18, 18, 2, 12, 5},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG7[7][5] = {{12, 14, 29, 38, 29},{8, 0, 35, 19, 10},{7, 11, 9, 14, 20},{10, 35, 8, 21, 10},{25, 1, 25, 19, 24},{36, 31, 12, 18, 11},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG7[7][5] = {{17, 26, 30, 14, 34},{20, 53, 7, 7, 8},{48, 6, 24, 43, 19},{44, 19, 3, 23, 41},{38, 26, 28, 51, 41},{46, 47, 14, 43, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG7[7][5] = {{25, 34, 9, 0, 26},{45, 1, 18, 42, 0},{10, 28, 28, 37, 39},{40, 51, 7, 16, 36},{32, 18, 22, 0, 68},{20, 57, 27, 7, 64},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG7[7][5] = {{3, 87, 35, 22, 0},{15, 77, 41, 58, 84},{48, 27, 54, 13, 15},{33, 55, 22, 68, 81},{39, 49, 0, 66, 0},{39, 3, 76, 78, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG7[7][5] = {{41, 22, 6, 1, 69},{88, 77, 20, 98, 6},{8, 52, 99, 14, 81},{49, 16, 49, 26, 78},{55, 12, 0, 1, 53},{76, 70, 103, 2, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG7[7][5] = {{77, 116, 66, 4, 39},{26, 31, 95, 24, 18},{89, 70, 4, 62, 100},{32, 110, 60, 95, 53},{46, 115, 98, 72, 22},{18, 84, 80, 76, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG7[7][5] = {{28, 2, 0, 14, 8},{12, 21, 10, 23, 0},{31, 7, 21, 14, 1},{31, 0, 0, 31, 31},{7, 17, 10, 16, 11},{8, 26, 7, 5, 19},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG7[7][5] = {{9, 5, 29, 46, 1},{14, 3, 42, 8, 2},{28, 34, 30, 41, 18},{45, 15, 40, 41, 30},{2, 47, 2, 11, 7},{18, 18, 26, 12, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG7[7][5] = {{12, 14, 69, 78, 69},{8, 0, 75, 59, 50},{47, 51, 9, 54, 60},{50, 75, 48, 61, 50},{25, 1, 25, 19, 24},{76, 71, 52, 18, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG7[7][5] = {{17, 82, 30, 14, 90},{76, 53, 63, 63, 8},{104, 62, 24, 99, 19},{100, 19, 3, 79, 97},{38, 82, 28, 51, 97},{46, 103, 70, 43, 81},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG7[7][5] = {{25, 34, 81, 0, 26},{45, 1, 18, 42, 0},{10, 28, 100, 109, 39},{40, 123, 7, 16, 108},{104, 90, 94, 0, 68},{20, 57, 99, 79, 64},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG7[7][5] = {{3, 175, 123, 22, 0},{103, 77, 41, 146, 172},{48, 27, 142, 101, 15},{121, 55, 110, 156, 81},{39, 49, 0, 66, 0},{39, 91, 76, 78, 113},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG7[7][5] = {{145, 126, 6, 1, 173},{88, 77, 20, 202, 6},{112, 156, 203, 118, 81},{153, 16, 153, 130, 182},{159, 12, 104, 1, 53},{76, 70, 207, 2, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG7[7][5] = {{77, 116, 186, 124, 39},{146, 151, 215, 144, 138},{209, 70, 124, 182, 220},{32, 230, 180, 95, 173},{166, 115, 98, 72, 142},{18, 84, 80, 76, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG7[7][5] = {{28, 34, 32, 14, 40},{44, 21, 42, 55, 32},{31, 39, 21, 14, 1},{31, 32, 32, 63, 63},{39, 49, 42, 16, 11},{40, 58, 7, 37, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG7[7][5] = {{9, 5, 77, 46, 49},{62, 51, 90, 56, 2},{28, 82, 78, 41, 18},{45, 15, 40, 89, 30},{2, 95, 50, 59, 55},{18, 66, 74, 12, 77},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG7[7][5] = {{12, 14, 69, 78, 69},{88, 80, 75, 139, 130},{47, 51, 9, 54, 60},{50, 75, 48, 61, 130},{25, 1, 105, 19, 24},{76, 151, 52, 98, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG7[7][5] = {{17, 82, 142, 14, 90},{76, 165, 175, 175, 120},{104, 174, 136, 211, 131},{100, 19, 3, 191, 209},{150, 194, 28, 51, 209},{158, 103, 182, 43, 81},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG7[7][5] = {{169, 178, 225, 0, 170},{189, 1, 162, 186, 0},{154, 28, 244, 253, 183},{184, 267, 151, 16, 108},{104, 234, 238, 0, 68},{164, 201, 243, 79, 64},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG7[7][5] = {{3, 175, 123, 22, 176},{103, 253, 217, 322, 348},{224, 27, 142, 277, 15},{297, 231, 110, 156, 81},{215, 49, 176, 66, 176},{39, 267, 76, 78, 113},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG7[7][5] = {{92, 98, 32, 78, 40},{44, 21, 42, 55, 96},{31, 39, 21, 78, 65},{31, 32, 32, 127, 63},{39, 49, 106, 16, 75},{104, 58, 7, 101, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG7[7][5] = {{9, 101, 77, 142, 49},{62, 147, 186, 56, 2},{124, 82, 174, 137, 18},{141, 111, 40, 89, 126},{98, 191, 50, 155, 55},{114, 162, 74, 12, 77},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG7[7][5] = {{12, 14, 229, 78, 229},{88, 80, 235, 299, 290},{207, 211, 169, 54, 60},{50, 75, 48, 61, 130},{25, 161, 105, 179, 184},{76, 311, 52, 258, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG7[7][5] = {{220, 98, 160, 206, 40},{44, 149, 42, 55, 96},{159, 167, 21, 206, 65},{31, 160, 32, 127, 63},{167, 49, 234, 16, 75},{104, 58, 7, 229, 179},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG7[7][5] = {{9, 101, 77, 142, 241},{62, 339, 186, 248, 2},{316, 274, 174, 137, 210},{333, 111, 232, 89, 318},{290, 383, 50, 347, 55},{114, 354, 74, 12, 269},{0, 0, 0, 0, 0}}; - -// Group of CNs with 8 BNs (CNG8) ->[Num BNs][Num of CN with 8 BNs] -static const uint16_t circShift_BG1_Z2_CNG8[8][2] = {{1, 1},{0, 1},{0, 1},{1, 0},{0, 0},{1, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG8[8][2] = {{0, 0},{2, 0},{1, 2},{1, 2},{1, 2},{0, 1},{1, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG8[8][2] = {{3, 1},{2, 2},{0, 0},{3, 4},{1, 2},{2, 3},{4, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG8[8][2] = {{3, 3},{3, 4},{2, 2},{3, 0},{0, 4},{4, 0},{6, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG8[8][2] = {{0, 1},{1, 5},{0, 4},{4, 1},{2, 3},{7, 3},{0, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG8[8][2] = {{10, 3},{9, 3},{9, 2},{3, 10},{9, 1},{5, 8},{8, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG8[8][2] = {{3, 2},{9, 12},{11, 6},{0, 3},{12, 0},{5, 5},{7, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG8[8][2] = {{2, 0},{6, 10},{2, 14},{8, 1},{0, 2},{0, 0},{0, 2},{0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG8[8][2] = {{1, 1},{0, 1},{2, 3},{3, 2},{0, 2},{3, 0},{3, 2},{0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG8[8][2] = {{3, 0},{2, 0},{1, 2},{4, 5},{1, 2},{3, 4},{1, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG8[8][2] = {{3, 6},{2, 7},{0, 0},{8, 9},{1, 7},{7, 3},{9, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG8[8][2] = {{10, 10},{3, 11},{2, 2},{10, 7},{0, 4},{4, 0},{13, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG8[8][2] = {{9, 1},{1, 5},{0, 4},{13, 1},{2, 3},{7, 3},{0, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG8[8][2] = {{21, 3},{20, 14},{9, 2},{14, 21},{9, 12},{16, 8},{19, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG8[8][2] = {{3, 2},{22, 12},{24, 19},{13, 16},{25, 0},{5, 5},{20, 20},{0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG8[8][2] = {{2, 15},{21, 25},{17, 14},{23, 1},{0, 2},{0, 15},{0, 17},{0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG8[8][2] = {{5, 5},{4, 1},{2, 3},{7, 6},{4, 6},{3, 4},{3, 6},{0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG8[8][2] = {{3, 0},{2, 6},{7, 8},{10, 11},{1, 8},{3, 10},{1, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG8[8][2] = {{3, 16},{12, 7},{10, 10},{18, 9},{1, 17},{7, 3},{19, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG8[8][2] = {{24, 24},{3, 11},{2, 2},{24, 7},{14, 4},{18, 0},{13, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG8[8][2] = {{9, 19},{1, 23},{0, 22},{31, 1},{2, 21},{7, 3},{0, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG8[8][2] = {{43, 25},{42, 14},{31, 24},{14, 43},{31, 34},{38, 30},{19, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG8[8][2] = {{29, 28},{48, 38},{24, 19},{13, 16},{51, 0},{5, 5},{20, 20},{0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG8[8][2] = {{2, 45},{51, 55},{47, 14},{23, 1},{30, 32},{0, 45},{0, 47},{0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG8[8][2] = {{13, 13},{12, 9},{2, 3},{7, 6},{12, 14},{11, 12},{3, 6},{0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG8[8][2] = {{3, 0},{14, 6},{19, 8},{22, 23},{1, 20},{3, 22},{13, 19},{0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG8[8][2] = {{3, 16},{12, 27},{10, 10},{38, 9},{1, 17},{27, 3},{39, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG8[8][2] = {{52, 52},{3, 11},{30, 2},{24, 35},{14, 32},{18, 28},{41, 33},{0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG8[8][2] = {{45, 55},{37, 23},{0, 58},{67, 37},{38, 57},{7, 39},{0, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG8[8][2] = {{43, 25},{42, 58},{75, 24},{58, 87},{31, 78},{82, 74},{19, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG8[8][2] = {{81, 80},{100, 90},{24, 19},{65, 16},{103, 0},{57, 5},{72, 20},{0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG8[8][2] = {{2, 45},{51, 115},{47, 14},{23, 1},{90, 32},{60, 45},{60, 107},{0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG8[8][2] = {{13, 13},{12, 9},{2, 19},{7, 22},{28, 14},{27, 28},{19, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG8[8][2] = {{3, 0},{14, 6},{19, 8},{22, 47},{1, 44},{3, 46},{13, 19},{0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG8[8][2] = {{3, 16},{52, 67},{50, 50},{78, 49},{41, 17},{27, 43},{39, 40},{0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG8[8][2] = {{52, 52},{59, 11},{86, 2},{80, 35},{70, 32},{18, 84},{41, 89},{0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG8[8][2] = {{117, 55},{37, 23},{72, 130},{139, 37},{110, 129},{79, 39},{0, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG8[8][2] = {{43, 25},{130, 146},{75, 24},{146, 175},{119, 166},{82, 162},{107, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG8[8][2] = {{185, 184},{100, 194},{24, 123},{65, 16},{207, 104},{161, 109},{72, 124},{0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG8[8][2] = {{2, 45},{171, 115},{47, 134},{143, 1},{210, 152},{180, 165},{180, 107},{0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG8[8][2] = {{13, 13},{44, 41},{2, 19},{39, 54},{28, 14},{59, 60},{51, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG8[8][2] = {{3, 48},{14, 6},{19, 8},{70, 47},{49, 92},{51, 46},{61, 19},{0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG8[8][2] = {{83, 16},{132, 147},{50, 130},{158, 129},{41, 17},{107, 43},{119, 120},{0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG8[8][2] = {{164, 52},{59, 11},{86, 2},{80, 35},{182, 32},{130, 84},{153, 201},{0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG8[8][2] = {{261, 55},{181, 23},{72, 274},{283, 181},{254, 273},{79, 39},{144, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG8[8][2] = {{219, 25},{130, 322},{251, 200},{322, 351},{295, 166},{258, 338},{283, 192},{0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG8[8][2] = {{77, 77},{108, 41},{66, 83},{103, 54},{28, 78},{123, 124},{115, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG8[8][2] = {{3, 48},{14, 102},{115, 8},{166, 47},{49, 188},{51, 142},{157, 115},{0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG8[8][2] = {{83, 16},{292, 147},{50, 290},{318, 289},{201, 177},{267, 43},{279, 280},{0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG8[8][2] = {{205, 77},{236, 41},{194, 83},{231, 182},{28, 78},{123, 252},{115, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG8[8][2] = {{195, 48},{14, 102},{115, 8},{166, 47},{241, 188},{51, 334},{157, 115},{0, 0}}; - -// Group of CNs with 9 BNs (CNG9) ->[Num BNs][Num of CN with 9 BNs] -static const uint16_t circShift_BG1_Z2_CNG9[9][2] = {{1, 1},{0, 0},{0, 1},{1, 1},{0, 0},{1, 0},{1, 1},{1, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG9[9][2] = {{2, 0},{2, 1},{1, 0},{0, 1},{2, 0},{1, 0},{0, 0},{0, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG9[9][2] = {{4, 4},{1, 4},{3, 1},{3, 1},{2, 1},{2, 2},{3, 0},{0, 4},{0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG9[9][2] = {{4, 2},{0, 2},{1, 3},{0, 0},{0, 5},{2, 3},{3, 4},{4, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG9[9][2] = {{8, 0},{0, 6},{7, 3},{0, 8},{5, 0},{6, 6},{7, 4},{0, 2},{0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG9[9][2] = {{8, 2},{7, 0},{0, 7},{0, 1},{7, 4},{7, 9},{9, 1},{8, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG9[9][2] = {{6, 6},{1, 10},{7, 2},{11, 1},{9, 6},{11, 4},{12, 8},{0, 4},{0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG9[9][2] = {{4, 4},{7, 12},{8, 11},{10, 11},{2, 2},{12, 2},{7, 2},{13, 10},{0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG9[9][2] = {{3, 3},{2, 2},{0, 1},{3, 1},{0, 2},{3, 2},{1, 1},{3, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG9[9][2] = {{2, 0},{5, 4},{1, 3},{3, 1},{2, 3},{1, 3},{0, 3},{3, 4},{0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG9[9][2] = {{9, 9},{1, 4},{3, 6},{3, 6},{2, 1},{2, 7},{8, 5},{5, 9},{0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG9[9][2] = {{4, 9},{7, 9},{1, 3},{7, 7},{7, 5},{9, 3},{10, 11},{4, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG9[9][2] = {{8, 0},{0, 15},{7, 3},{0, 8},{5, 9},{15, 6},{7, 4},{0, 11},{0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG9[9][2] = {{8, 2},{7, 0},{0, 7},{11, 1},{18, 4},{18, 20},{20, 1},{19, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG9[9][2] = {{6, 6},{1, 10},{7, 15},{24, 1},{22, 19},{24, 4},{12, 8},{13, 17},{0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG9[9][2] = {{19, 19},{22, 12},{23, 26},{10, 11},{2, 17},{27, 2},{22, 2},{13, 25},{0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG9[9][2] = {{7, 7},{6, 6},{4, 5},{3, 5},{4, 6},{3, 6},{5, 5},{3, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG9[9][2] = {{2, 6},{5, 4},{1, 9},{3, 1},{8, 9},{1, 3},{6, 3},{9, 10},{0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG9[9][2] = {{9, 9},{1, 4},{13, 16},{13, 6},{12, 11},{2, 7},{18, 15},{15, 9},{0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG9[9][2] = {{18, 9},{7, 9},{1, 17},{21, 21},{7, 5},{23, 17},{24, 25},{4, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG9[9][2] = {{8, 18},{0, 15},{25, 21},{18, 26},{23, 9},{33, 24},{7, 4},{0, 29},{0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG9[9][2] = {{30, 24},{29, 0},{22, 29},{11, 23},{40, 4},{18, 20},{20, 23},{41, 29},{0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG9[9][2] = {{6, 6},{27, 10},{7, 41},{50, 1},{48, 45},{24, 4},{38, 8},{39, 17},{0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG9[9][2] = {{19, 49},{22, 12},{23, 26},{40, 41},{32, 17},{27, 32},{52, 32},{13, 25},{0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG9[9][2] = {{7, 7},{6, 6},{12, 13},{3, 5},{4, 14},{11, 14},{13, 13},{3, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG9[9][2] = {{14, 6},{17, 16},{1, 9},{15, 13},{20, 9},{13, 15},{18, 15},{9, 10},{0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG9[9][2] = {{9, 29},{21, 4},{13, 36},{13, 6},{32, 31},{22, 27},{18, 15},{35, 9},{0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG9[9][2] = {{46, 9},{7, 37},{1, 45},{21, 49},{7, 33},{51, 17},{24, 53},{4, 50},{0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG9[9][2] = {{8, 18},{0, 15},{25, 21},{18, 62},{59, 45},{33, 60},{7, 4},{36, 65},{0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG9[9][2] = {{30, 68},{73, 0},{66, 29},{11, 23},{84, 4},{62, 64},{20, 23},{41, 73},{0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG9[9][2] = {{6, 6},{27, 10},{59, 41},{50, 53},{48, 97},{24, 4},{38, 60},{91, 69},{0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG9[9][2] = {{79, 49},{22, 12},{23, 86},{100, 101},{92, 17},{87, 92},{52, 92},{13, 85},{0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG9[9][2] = {{23, 7},{22, 22},{28, 13},{3, 21},{20, 14},{11, 14},{29, 29},{19, 24},{0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG9[9][2] = {{38, 30},{17, 40},{1, 33},{15, 37},{44, 9},{13, 15},{18, 15},{33, 34},{0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG9[9][2] = {{49, 29},{21, 4},{53, 36},{13, 46},{72, 71},{62, 27},{58, 55},{75, 49},{0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG9[9][2] = {{46, 9},{7, 37},{1, 101},{21, 105},{63, 89},{51, 73},{24, 109},{4, 106},{0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG9[9][2] = {{80, 18},{0, 15},{25, 93},{90, 134},{59, 45},{33, 132},{7, 76},{108, 65},{0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG9[9][2] = {{118, 156},{73, 88},{154, 117},{99, 111},{172, 92},{150, 152},{108, 23},{129, 161},{0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG9[9][2] = {{6, 6},{27, 10},{163, 145},{50, 53},{48, 201},{24, 4},{38, 164},{91, 173},{0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG9[9][2] = {{199, 169},{22, 12},{23, 206},{100, 221},{92, 17},{207, 212},{52, 92},{13, 205},{0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG9[9][2] = {{55, 39},{22, 54},{28, 45},{3, 21},{52, 14},{11, 14},{29, 61},{19, 24},{0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG9[9][2] = {{86, 78},{65, 40},{1, 33},{63, 37},{92, 57},{61, 15},{18, 63},{33, 82},{0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG9[9][2] = {{129, 29},{21, 84},{133, 36},{13, 126},{72, 151},{142, 107},{138, 135},{75, 49},{0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG9[9][2] = {{158, 9},{119, 37},{113, 213},{21, 105},{63, 89},{51, 185},{136, 109},{116, 218},{0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG9[9][2] = {{80, 162},{144, 159},{169, 93},{90, 134},{59, 45},{177, 132},{151, 76},{108, 209},{0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG9[9][2] = {{294, 156},{73, 88},{330, 293},{99, 111},{172, 92},{150, 152},{284, 23},{305, 337},{0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG9[9][2] = {{55, 103},{22, 54},{28, 109},{67, 21},{116, 14},{11, 14},{29, 61},{83, 88},{0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG9[9][2] = {{86, 174},{65, 40},{1, 129},{159, 133},{92, 57},{61, 111},{18, 63},{33, 82},{0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG9[9][2] = {{289, 189},{21, 244},{293, 36},{13, 286},{232, 151},{302, 267},{138, 135},{235, 209},{0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG9[9][2] = {{183, 103},{22, 182},{28, 109},{67, 21},{244, 142},{11, 14},{157, 61},{211, 216},{0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG9[9][2] = {{278, 366},{257, 232},{1, 321},{351, 133},{92, 57},{253, 303},{18, 63},{225, 82},{0, 0}}; - -// Group of CNs with 10 BNs (CNG10) ->[Num BNs][Num of CN with 10 BNs] -static const uint16_t circShift_BG1_Z2_CNG10[10][1] = {{0},{0},{1},{1},{0},{0},{1},{1},{0},{0}}; -static const uint16_t circShift_BG1_Z3_CNG10[10][1] = {{1},{2},{0},{0},{0},{2},{2},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z5_CNG10[10][1] = {{0},{3},{0},{1},{1},{0},{4},{0},{4},{0}}; -static const uint16_t circShift_BG1_Z7_CNG10[10][1] = {{5},{4},{4},{0},{1},{4},{2},{2},{5},{0}}; -static const uint16_t circShift_BG1_Z9_CNG10[10][1] = {{0},{0},{0},{5},{8},{1},{6},{5},{0},{0}}; -static const uint16_t circShift_BG1_Z11_CNG10[10][1] = {{7},{9},{0},{4},{4},{6},{4},{6},{2},{0}}; -static const uint16_t circShift_BG1_Z13_CNG10[10][1] = {{3},{2},{1},{11},{5},{8},{10},{9},{12},{0}}; -static const uint16_t circShift_BG1_Z15_CNG10[10][1] = {{1},{0},{6},{13},{12},{10},{4},{3},{8},{0}}; -static const uint16_t circShift_BG1_Z4_CNG10[10][1] = {{0},{0},{3},{3},{2},{0},{1},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z6_CNG10[10][1] = {{1},{5},{3},{0},{3},{2},{2},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z10_CNG10[10][1] = {{5},{3},{0},{1},{6},{0},{9},{5},{4},{0}}; -static const uint16_t circShift_BG1_Z14_CNG10[10][1] = {{5},{11},{4},{7},{8},{11},{2},{2},{5},{0}}; -static const uint16_t circShift_BG1_Z18_CNG10[10][1] = {{0},{0},{0},{5},{8},{10},{15},{14},{0},{0}}; -static const uint16_t circShift_BG1_Z22_CNG10[10][1] = {{18},{9},{0},{4},{4},{17},{15},{6},{2},{0}}; -static const uint16_t circShift_BG1_Z26_CNG10[10][1] = {{16},{2},{1},{11},{18},{21},{23},{9},{12},{0}}; -static const uint16_t circShift_BG1_Z30_CNG10[10][1] = {{1},{15},{21},{13},{27},{25},{19},{3},{8},{0}}; -static const uint16_t circShift_BG1_Z8_CNG10[10][1] = {{0},{4},{7},{3},{6},{4},{5},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z12_CNG10[10][1] = {{7},{11},{9},{6},{3},{8},{8},{7},{2},{0}}; -static const uint16_t circShift_BG1_Z20_CNG10[10][1] = {{15},{13},{10},{11},{16},{10},{9},{5},{14},{0}}; -static const uint16_t circShift_BG1_Z28_CNG10[10][1] = {{5},{11},{4},{21},{8},{11},{2},{16},{5},{0}}; -static const uint16_t circShift_BG1_Z36_CNG10[10][1] = {{18},{0},{0},{5},{26},{10},{15},{14},{18},{0}}; -static const uint16_t circShift_BG1_Z44_CNG10[10][1] = {{40},{31},{22},{4},{4},{17},{15},{6},{24},{0}}; -static const uint16_t circShift_BG1_Z52_CNG10[10][1] = {{16},{2},{27},{37},{44},{47},{49},{35},{12},{0}}; -static const uint16_t circShift_BG1_Z60_CNG10[10][1] = {{1},{45},{21},{43},{57},{25},{19},{33},{38},{0}}; -static const uint16_t circShift_BG1_Z16_CNG10[10][1] = {{0},{4},{7},{3},{6},{4},{13},{1},{10},{0}}; -static const uint16_t circShift_BG1_Z24_CNG10[10][1] = {{19},{11},{21},{18},{15},{8},{8},{19},{2},{0}}; -static const uint16_t circShift_BG1_Z40_CNG10[10][1] = {{15},{13},{10},{31},{16},{30},{29},{5},{34},{0}}; -static const uint16_t circShift_BG1_Z56_CNG10[10][1] = {{33},{39},{4},{49},{36},{39},{2},{44},{33},{0}}; -static const uint16_t circShift_BG1_Z72_CNG10[10][1] = {{54},{0},{36},{41},{26},{46},{15},{14},{54},{0}}; -static const uint16_t circShift_BG1_Z88_CNG10[10][1] = {{84},{75},{22},{48},{48},{17},{59},{50},{68},{0}}; -static const uint16_t circShift_BG1_Z104_CNG10[10][1] = {{68},{2},{27},{37},{96},{99},{101},{35},{12},{0}}; -static const uint16_t circShift_BG1_Z120_CNG10[10][1] = {{61},{105},{21},{103},{57},{25},{79},{33},{38},{0}}; -static const uint16_t circShift_BG1_Z32_CNG10[10][1] = {{16},{4},{7},{19},{6},{4},{13},{17},{26},{0}}; -static const uint16_t circShift_BG1_Z48_CNG10[10][1] = {{19},{35},{21},{18},{39},{32},{32},{19},{26},{0}}; -static const uint16_t circShift_BG1_Z80_CNG10[10][1] = {{55},{53},{50},{71},{56},{30},{29},{5},{74},{0}}; -static const uint16_t circShift_BG1_Z112_CNG10[10][1] = {{33},{95},{4},{105},{92},{39},{58},{44},{89},{0}}; -static const uint16_t circShift_BG1_Z144_CNG10[10][1] = {{54},{0},{108},{41},{98},{46},{15},{86},{54},{0}}; -static const uint16_t circShift_BG1_Z176_CNG10[10][1] = {{172},{75},{22},{136},{48},{17},{59},{138},{68},{0}}; -static const uint16_t circShift_BG1_Z208_CNG10[10][1] = {{172},{2},{131},{141},{96},{99},{101},{35},{116},{0}}; -static const uint16_t circShift_BG1_Z240_CNG10[10][1] = {{181},{105},{141},{223},{177},{145},{199},{153},{38},{0}}; -static const uint16_t circShift_BG1_Z64_CNG10[10][1] = {{48},{4},{7},{19},{38},{36},{45},{49},{26},{0}}; -static const uint16_t circShift_BG1_Z96_CNG10[10][1] = {{19},{83},{69},{18},{39},{32},{80},{67},{74},{0}}; -static const uint16_t circShift_BG1_Z160_CNG10[10][1] = {{135},{133},{130},{71},{136},{110},{109},{85},{154},{0}}; -static const uint16_t circShift_BG1_Z224_CNG10[10][1] = {{33},{95},{4},{217},{204},{39},{58},{44},{201},{0}}; -static const uint16_t circShift_BG1_Z288_CNG10[10][1] = {{54},{0},{252},{41},{98},{46},{15},{230},{54},{0}}; -static const uint16_t circShift_BG1_Z352_CNG10[10][1] = {{348},{75},{22},{312},{224},{17},{59},{314},{244},{0}}; -static const uint16_t circShift_BG1_Z128_CNG10[10][1] = {{112},{4},{7},{83},{102},{36},{109},{113},{90},{0}}; -static const uint16_t circShift_BG1_Z192_CNG10[10][1] = {{115},{179},{165},{18},{39},{32},{176},{67},{170},{0}}; -static const uint16_t circShift_BG1_Z320_CNG10[10][1] = {{295},{133},{130},{231},{296},{110},{269},{245},{154},{0}}; -static const uint16_t circShift_BG1_Z256_CNG10[10][1] = {{112},{4},{7},{211},{102},{164},{109},{241},{90},{0}}; -static const uint16_t circShift_BG1_Z384_CNG10[10][1] = {{307},{179},{165},{18},{39},{224},{368},{67},{170},{0}}; - -// Group of CNs with 19 BNs (CNG19) ->[Num BNs][Num of CN with 19 BNs] -static const uint16_t circShift_BG1_Z2_CNG19[19][4] = {{0, 0, 0, 1},{1, 1, 1, 1},{0, 1, 1, 0},{1, 0, 1, 0},{0, 1, 1, 0},{0, 0, 1, 1},{1, 0, 1, 1},{1, 1, 1, 0},{0, 0, 1, 0},{1, 0, 1, 0},{1, 1, 0, 1},{1, 0, 1, 1},{1, 0, 1, 0},{0, 1, 1, 0},{1, 1, 1, 0},{1, 0, 1, 0},{1, 0, 1, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG19[19][4] = {{1, 1, 1, 0},{1, 1, 1, 0},{2, 1, 1, 0},{0, 0, 2, 2},{1, 0, 1, 1},{0, 1, 2, 0},{2, 1, 0, 2},{0, 1, 1, 0},{1, 1, 0, 2},{2, 0, 0, 0},{0, 1, 2, 2},{2, 0, 1, 2},{1, 0, 2, 1},{2, 0, 2, 0},{0, 1, 0, 1},{0, 1, 1, 0},{1, 0, 1, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG19[19][4] = {{3, 3, 3, 0},{0, 4, 2, 3},{3, 2, 0, 0},{4, 1, 0, 2},{0, 1, 3, 1},{4, 3, 2, 0},{0, 4, 2, 4},{2, 0, 0, 1},{0, 4, 1, 3},{4, 0, 1, 3},{3, 1, 0, 4},{3, 1, 3, 3},{0, 2, 1, 4},{3, 3, 4, 3},{1, 0, 1, 2},{4, 1, 0, 4},{2, 0, 1, 3},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG19[19][4] = {{6, 1, 4, 5},{2, 3, 0, 4},{3, 4, 3, 4},{0, 4, 1, 5},{4, 0, 5, 3},{3, 3, 4, 2},{0, 0, 4, 2},{2, 3, 6, 6},{6, 3, 2, 1},{0, 2, 0, 3},{5, 2, 0, 0},{0, 2, 4, 6},{0, 6, 0, 5},{1, 5, 2, 4},{2, 3, 5, 1},{6, 5, 6, 2},{4, 0, 6, 4},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG19[19][4] = {{4, 8, 6, 7},{0, 0, 5, 1},{8, 7, 4, 4},{6, 4, 7, 0},{3, 7, 0, 1},{4, 4, 4, 6},{2, 4, 2, 8},{0, 0, 0, 5},{8, 1, 0, 0},{0, 6, 3, 3},{7, 0, 2, 0},{8, 8, 4, 7},{0, 5, 0, 8},{5, 3, 0, 3},{0, 3, 8, 0},{1, 2, 2, 5},{0, 0, 0, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG19[19][4] = {{8, 0, 6, 9},{8, 5, 2, 6},{2, 8, 4, 5},{0, 8, 5, 4},{9, 4, 1, 7},{0, 2, 1, 1},{1, 5, 7, 3},{8, 6, 6, 7},{1, 2, 8, 4},{9, 0, 6, 4},{3, 4, 0, 5},{9, 0, 0, 9},{6, 4, 4, 7},{7, 1, 10, 6},{2, 9, 9, 0},{3, 5, 1, 0},{1, 0, 7, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG19[19][4] = {{0, 9, 2, 4},{0, 11, 11, 6},{0, 7, 8, 7},{0, 0, 11, 9},{0, 10, 4, 10},{0, 0, 6, 8},{0, 0, 9, 6},{0, 2, 12, 8},{0, 3, 5, 5},{0, 8, 0, 11},{0, 0, 12, 9},{0, 6, 2, 5},{0, 4, 7, 1},{0, 0, 8, 4},{0, 12, 10, 3},{0, 5, 3, 2},{0, 1, 1, 12},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG19[19][4] = {{0, 6, 9, 8},{2, 11, 4, 8},{6, 1, 0, 12},{14, 11, 1, 10},{9, 8, 11, 13},{8, 2, 12, 6},{8, 7, 14, 6},{0, 11, 2, 1},{10, 11, 9, 6},{8, 9, 8, 7},{0, 5, 6, 9},{0, 10, 11, 2},{7, 3, 3, 5},{10, 12, 6, 2},{0, 13, 5, 10},{0, 6, 7, 7},{2, 0, 5, 9},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG19[19][4] = {{2, 2, 2, 1},{1, 3, 3, 1},{2, 1, 1, 0},{3, 0, 3, 0},{0, 3, 1, 2},{2, 2, 1, 3},{3, 0, 1, 3},{1, 1, 1, 0},{2, 0, 3, 2},{3, 2, 3, 2},{1, 1, 2, 3},{3, 0, 1, 3},{3, 2, 1, 0},{2, 3, 1, 0},{3, 3, 1, 0},{3, 0, 3, 0},{3, 0, 1, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG19[19][4] = {{1, 4, 1, 0},{1, 4, 4, 3},{2, 1, 4, 0},{3, 0, 2, 5},{1, 0, 4, 1},{0, 1, 5, 3},{5, 1, 3, 2},{0, 4, 4, 0},{1, 1, 3, 5},{5, 0, 3, 3},{3, 1, 2, 5},{5, 3, 4, 2},{4, 0, 5, 4},{2, 0, 5, 0},{0, 1, 0, 1},{0, 4, 1, 3},{4, 0, 1, 3},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG19[19][4] = {{3, 3, 8, 0},{5, 4, 7, 8},{3, 7, 0, 0},{9, 1, 0, 7},{0, 1, 8, 1},{9, 3, 7, 5},{5, 4, 2, 9},{2, 0, 0, 1},{5, 9, 1, 3},{4, 0, 6, 3},{3, 6, 5, 4},{8, 6, 3, 3},{0, 2, 1, 4},{3, 3, 4, 8},{6, 0, 6, 7},{9, 1, 0, 9},{2, 0, 6, 8},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG19[19][4] = {{13, 1, 11, 5},{2, 3, 7, 4},{10, 11, 3, 11},{7, 4, 8, 5},{4, 7, 12, 3},{10, 3, 4, 2},{0, 7, 11, 2},{9, 3, 13, 6},{6, 10, 9, 1},{7, 9, 0, 3},{5, 9, 7, 7},{0, 9, 4, 13},{0, 6, 7, 12},{1, 12, 2, 4},{2, 3, 5, 1},{6, 5, 13, 2},{11, 0, 6, 4},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG19[19][4] = {{13, 17, 6, 7},{0, 0, 5, 1},{8, 7, 4, 4},{6, 4, 7, 0},{3, 16, 9, 10},{4, 4, 4, 6},{11, 4, 2, 17},{0, 9, 9, 5},{8, 1, 0, 0},{0, 15, 3, 3},{7, 0, 2, 0},{17, 8, 13, 7},{0, 14, 0, 8},{5, 3, 0, 3},{0, 12, 17, 0},{1, 11, 2, 5},{9, 0, 0, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG19[19][4] = {{8, 11, 6, 9},{8, 5, 13, 6},{13, 8, 15, 5},{0, 8, 16, 15},{9, 4, 1, 7},{11, 2, 1, 12},{1, 16, 18, 3},{8, 6, 17, 18},{1, 13, 8, 4},{9, 11, 17, 15},{3, 4, 0, 5},{9, 0, 0, 9},{17, 15, 15, 7},{18, 1, 21, 17},{13, 9, 9, 11},{3, 16, 12, 11},{12, 0, 7, 11},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG19[19][4] = {{0, 22, 2, 4},{0, 11, 11, 6},{0, 20, 21, 7},{0, 0, 24, 9},{0, 10, 4, 23},{0, 0, 19, 21},{0, 0, 22, 6},{0, 2, 12, 21},{0, 16, 18, 5},{0, 8, 13, 24},{0, 0, 25, 9},{0, 6, 2, 5},{0, 4, 7, 14},{0, 0, 21, 17},{0, 12, 23, 16},{0, 5, 16, 2},{0, 1, 14, 12},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG19[19][4] = {{15, 6, 9, 8},{17, 26, 4, 23},{6, 16, 15, 12},{14, 11, 1, 10},{24, 8, 26, 13},{23, 2, 27, 6},{23, 22, 29, 6},{15, 26, 2, 1},{25, 11, 24, 6},{8, 9, 8, 22},{15, 5, 6, 24},{15, 25, 11, 17},{7, 3, 3, 20},{10, 27, 6, 2},{0, 13, 5, 25},{15, 6, 7, 22},{17, 0, 20, 9},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG19[19][4] = {{2, 2, 2, 1},{5, 7, 7, 1},{2, 5, 1, 4},{7, 4, 7, 4},{4, 7, 5, 6},{2, 6, 5, 3},{3, 0, 5, 3},{5, 5, 1, 0},{6, 4, 7, 6},{7, 6, 7, 6},{1, 5, 6, 3},{3, 4, 1, 3},{7, 6, 1, 0},{6, 3, 5, 4},{3, 7, 5, 4},{7, 4, 3, 0},{7, 0, 5, 4},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG19[19][4] = {{7, 4, 1, 0},{7, 4, 10, 3},{2, 1, 4, 0},{9, 0, 8, 11},{1, 0, 4, 7},{0, 7, 5, 9},{5, 7, 3, 8},{0, 10, 4, 0},{1, 7, 3, 5},{5, 6, 9, 3},{9, 1, 8, 5},{11, 3, 4, 8},{10, 6, 5, 4},{2, 6, 11, 0},{0, 7, 0, 7},{6, 4, 1, 3},{10, 0, 1, 9},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG19[19][4] = {{13, 3, 8, 0},{15, 14, 7, 8},{3, 7, 0, 10},{9, 1, 0, 17},{0, 1, 18, 1},{19, 13, 7, 15},{15, 4, 2, 19},{2, 0, 0, 1},{15, 9, 11, 3},{4, 0, 6, 13},{13, 16, 15, 4},{18, 6, 3, 13},{10, 12, 1, 4},{13, 3, 4, 8},{16, 0, 6, 17},{9, 1, 10, 19},{12, 0, 16, 8},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG19[19][4] = {{27, 1, 11, 5},{16, 17, 7, 18},{10, 11, 3, 25},{7, 18, 8, 5},{18, 7, 12, 17},{10, 17, 18, 2},{0, 21, 11, 16},{9, 3, 13, 6},{20, 10, 9, 15},{21, 9, 14, 17},{19, 23, 21, 7},{14, 9, 18, 13},{14, 6, 21, 12},{1, 26, 2, 18},{2, 3, 5, 15},{20, 19, 27, 2},{25, 0, 6, 18},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG19[19][4] = {{31, 35, 6, 7},{18, 18, 23, 1},{8, 7, 4, 22},{6, 4, 25, 0},{3, 16, 27, 10},{4, 4, 22, 24},{29, 22, 2, 17},{0, 9, 27, 5},{8, 1, 0, 18},{0, 15, 3, 21},{7, 0, 2, 0},{17, 8, 13, 7},{0, 14, 0, 26},{23, 3, 0, 21},{0, 12, 17, 0},{1, 11, 20, 5},{9, 0, 18, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG19[19][4] = {{30, 33, 6, 9},{30, 5, 35, 6},{35, 8, 37, 5},{22, 30, 38, 15},{31, 4, 23, 7},{33, 24, 1, 34},{23, 38, 40, 3},{30, 6, 17, 18},{1, 35, 30, 26},{31, 33, 39, 37},{25, 26, 22, 5},{9, 22, 22, 9},{39, 37, 37, 29},{40, 1, 43, 39},{35, 9, 31, 11},{3, 38, 34, 33},{12, 0, 7, 33},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG19[19][4] = {{0, 22, 28, 4},{0, 11, 37, 6},{0, 20, 21, 33},{0, 0, 24, 9},{0, 10, 4, 49},{0, 0, 45, 21},{0, 0, 48, 6},{0, 2, 38, 47},{0, 16, 18, 31},{0, 8, 39, 50},{0, 0, 51, 35},{0, 6, 28, 5},{0, 30, 33, 40},{0, 0, 47, 17},{0, 12, 23, 16},{0, 31, 42, 2},{0, 1, 14, 38},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG19[19][4] = {{15, 36, 9, 8},{47, 56, 4, 23},{6, 16, 45, 42},{14, 41, 31, 40},{24, 8, 56, 43},{23, 32, 57, 6},{53, 52, 59, 36},{45, 56, 32, 1},{25, 11, 24, 36},{8, 9, 8, 22},{15, 35, 6, 24},{15, 25, 41, 47},{37, 33, 33, 20},{40, 27, 36, 32},{30, 43, 5, 55},{45, 36, 7, 52},{17, 0, 50, 39},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG19[19][4] = {{10, 2, 10, 9},{5, 15, 15, 9},{2, 5, 9, 4},{15, 12, 15, 4},{4, 7, 5, 6},{10, 14, 13, 3},{11, 8, 5, 3},{5, 13, 1, 8},{14, 12, 15, 6},{15, 6, 7, 6},{9, 13, 14, 11},{3, 4, 1, 3},{7, 14, 1, 0},{14, 11, 5, 12},{3, 15, 13, 4},{15, 12, 11, 0},{15, 0, 5, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG19[19][4] = {{19, 4, 13, 12},{19, 4, 10, 15},{2, 1, 16, 0},{9, 0, 20, 11},{13, 0, 16, 7},{0, 19, 17, 9},{5, 19, 3, 8},{0, 10, 16, 12},{13, 7, 15, 17},{17, 6, 9, 15},{21, 1, 8, 5},{23, 3, 16, 20},{10, 18, 5, 16},{2, 18, 11, 12},{12, 19, 0, 7},{18, 16, 13, 15},{10, 0, 13, 21},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG19[19][4] = {{33, 23, 28, 20},{15, 14, 7, 8},{23, 27, 0, 30},{9, 21, 0, 37},{0, 1, 38, 21},{39, 13, 27, 15},{15, 4, 2, 39},{2, 0, 0, 1},{15, 9, 31, 23},{4, 20, 26, 13},{13, 36, 15, 4},{18, 26, 3, 13},{30, 32, 21, 4},{33, 3, 24, 28},{16, 20, 6, 37},{29, 21, 30, 39},{32, 0, 36, 28},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG19[19][4] = {{55, 29, 39, 33},{16, 45, 35, 18},{38, 39, 31, 53},{35, 46, 8, 5},{18, 7, 12, 45},{10, 45, 18, 30},{0, 21, 39, 16},{37, 31, 41, 34},{48, 38, 9, 43},{21, 37, 14, 45},{47, 23, 21, 35},{14, 9, 46, 13},{14, 6, 21, 40},{29, 26, 30, 18},{30, 31, 5, 43},{48, 19, 55, 30},{25, 0, 34, 46},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG19[19][4] = {{67, 35, 42, 43},{54, 18, 23, 1},{44, 7, 4, 22},{42, 40, 61, 36},{3, 16, 27, 10},{4, 4, 58, 60},{29, 58, 2, 53},{0, 45, 63, 41},{44, 37, 0, 18},{0, 15, 3, 57},{43, 0, 2, 36},{17, 8, 13, 43},{0, 14, 0, 26},{23, 3, 0, 21},{0, 12, 53, 0},{1, 47, 56, 41},{45, 0, 18, 36},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG19[19][4] = {{30, 77, 50, 9},{30, 49, 35, 6},{79, 8, 37, 49},{66, 74, 38, 15},{31, 4, 23, 51},{77, 24, 1, 78},{67, 38, 40, 3},{74, 50, 61, 18},{1, 79, 30, 70},{75, 77, 39, 81},{25, 70, 22, 5},{53, 66, 22, 9},{83, 81, 37, 73},{40, 45, 43, 39},{79, 9, 75, 55},{47, 38, 34, 33},{12, 0, 7, 33},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG19[19][4] = {{0, 22, 28, 4},{0, 11, 37, 6},{0, 20, 21, 33},{0, 0, 76, 9},{0, 10, 4, 49},{0, 0, 45, 21},{0, 0, 48, 6},{0, 2, 38, 47},{0, 16, 18, 83},{0, 60, 91, 50},{0, 0, 51, 87},{0, 6, 28, 5},{0, 30, 85, 92},{0, 0, 47, 69},{0, 64, 75, 16},{0, 31, 42, 2},{0, 1, 66, 38},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG19[19][4] = {{15, 96, 69, 8},{107, 116, 4, 23},{6, 16, 105, 42},{14, 101, 31, 100},{84, 8, 116, 43},{83, 92, 117, 66},{53, 52, 59, 96},{105, 56, 92, 1},{85, 11, 24, 96},{8, 69, 68, 22},{75, 95, 6, 24},{15, 85, 101, 47},{97, 33, 33, 80},{100, 87, 96, 32},{90, 43, 5, 115},{105, 96, 67, 52},{17, 0, 110, 99},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG19[19][4] = {{26, 2, 10, 25},{5, 15, 15, 25},{2, 21, 25, 20},{31, 28, 31, 20},{4, 7, 21, 22},{10, 30, 29, 3},{27, 8, 5, 19},{5, 13, 17, 8},{14, 28, 31, 22},{31, 6, 7, 22},{9, 13, 14, 27},{3, 4, 1, 19},{23, 14, 1, 16},{30, 27, 21, 12},{3, 31, 13, 20},{15, 28, 27, 16},{31, 0, 21, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG19[19][4] = {{19, 28, 13, 36},{19, 28, 10, 39},{2, 25, 40, 0},{33, 0, 44, 35},{37, 0, 16, 7},{24, 43, 17, 9},{29, 43, 27, 8},{0, 34, 16, 36},{13, 7, 15, 17},{17, 6, 33, 39},{21, 25, 8, 5},{23, 3, 40, 20},{10, 18, 5, 16},{2, 18, 35, 12},{36, 43, 0, 31},{42, 16, 13, 39},{10, 0, 13, 21},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG19[19][4] = {{73, 63, 68, 60},{15, 54, 7, 48},{23, 27, 0, 30},{49, 21, 40, 37},{0, 1, 38, 61},{39, 53, 67, 15},{15, 4, 42, 79},{2, 0, 40, 41},{55, 49, 71, 63},{4, 60, 26, 13},{53, 76, 55, 4},{58, 26, 43, 53},{30, 72, 61, 44},{33, 3, 24, 28},{16, 20, 6, 77},{29, 61, 70, 79},{32, 0, 36, 68},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG19[19][4] = {{111, 29, 95, 89},{16, 45, 91, 18},{94, 39, 31, 53},{91, 46, 64, 5},{74, 7, 68, 45},{10, 45, 74, 30},{0, 21, 95, 16},{93, 87, 41, 34},{104, 94, 65, 43},{21, 93, 70, 101},{103, 79, 77, 35},{14, 9, 102, 69},{70, 6, 77, 96},{29, 82, 86, 74},{86, 31, 5, 99},{104, 75, 111, 30},{81, 0, 90, 46},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG19[19][4] = {{67, 35, 114, 43},{54, 18, 23, 1},{44, 79, 76, 22},{42, 112, 133, 108},{75, 16, 99, 82},{4, 76, 58, 132},{29, 58, 74, 53},{0, 117, 63, 41},{116, 109, 0, 18},{72, 15, 3, 57},{115, 72, 74, 36},{89, 8, 85, 115},{0, 14, 0, 98},{95, 3, 72, 21},{72, 12, 125, 0},{73, 119, 56, 113},{117, 0, 90, 108},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG19[19][4] = {{118, 77, 50, 97},{118, 49, 35, 94},{167, 96, 37, 49},{154, 162, 126, 103},{31, 92, 111, 139},{165, 112, 89, 166},{67, 126, 128, 91},{74, 50, 61, 106},{1, 167, 118, 70},{163, 77, 127, 169},{25, 158, 110, 93},{53, 66, 110, 9},{171, 81, 125, 73},{128, 133, 131, 39},{167, 9, 163, 143},{47, 126, 34, 121},{12, 0, 7, 121},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG19[19][4] = {{0, 22, 132, 4},{0, 11, 37, 6},{0, 124, 21, 33},{0, 0, 180, 113},{0, 10, 4, 49},{0, 0, 149, 21},{0, 0, 48, 6},{0, 2, 38, 151},{0, 16, 122, 83},{0, 60, 195, 154},{0, 0, 155, 87},{0, 6, 28, 5},{0, 30, 85, 92},{0, 0, 47, 173},{0, 168, 179, 120},{0, 31, 42, 2},{0, 105, 66, 142},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG19[19][4] = {{135, 96, 189, 128},{227, 236, 4, 23},{126, 136, 225, 162},{134, 221, 151, 220},{84, 128, 236, 43},{83, 92, 117, 186},{53, 172, 179, 96},{225, 56, 92, 1},{205, 11, 24, 216},{128, 189, 68, 22},{75, 95, 6, 24},{135, 85, 101, 167},{217, 153, 33, 200},{220, 87, 96, 32},{90, 163, 125, 235},{105, 216, 67, 172},{137, 0, 230, 219},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG19[19][4] = {{58, 2, 42, 57},{5, 47, 47, 25},{34, 53, 57, 20},{31, 60, 63, 20},{36, 7, 53, 22},{10, 30, 29, 3},{59, 40, 37, 51},{37, 45, 49, 8},{46, 28, 31, 22},{63, 38, 39, 54},{9, 45, 14, 27},{3, 4, 33, 19},{23, 14, 33, 48},{62, 27, 53, 12},{35, 63, 13, 52},{47, 28, 59, 16},{31, 0, 53, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG19[19][4] = {{19, 76, 13, 84},{19, 76, 58, 87},{50, 73, 40, 0},{81, 0, 44, 83},{85, 48, 64, 7},{24, 43, 65, 57},{29, 43, 75, 56},{0, 82, 64, 36},{13, 7, 63, 17},{17, 54, 33, 39},{69, 25, 8, 53},{23, 3, 88, 20},{10, 66, 53, 16},{50, 18, 35, 12},{84, 43, 48, 79},{42, 16, 13, 39},{58, 0, 13, 69},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG19[19][4] = {{73, 143, 68, 60},{15, 134, 7, 48},{103, 27, 80, 30},{49, 101, 120, 37},{80, 1, 38, 61},{39, 133, 67, 15},{15, 4, 42, 79},{2, 80, 40, 121},{55, 129, 71, 143},{4, 140, 106, 93},{133, 76, 135, 4},{138, 106, 123, 53},{110, 72, 141, 44},{113, 83, 24, 28},{16, 100, 86, 77},{29, 141, 70, 159},{32, 0, 116, 68},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG19[19][4] = {{223, 141, 207, 201},{16, 45, 203, 18},{94, 151, 31, 165},{91, 46, 176, 5},{74, 119, 180, 45},{10, 157, 186, 142},{0, 133, 95, 16},{205, 87, 153, 34},{216, 206, 177, 155},{21, 93, 70, 213},{215, 79, 77, 147},{14, 9, 214, 69},{70, 118, 77, 96},{141, 194, 198, 74},{198, 31, 117, 99},{104, 187, 223, 30},{81, 0, 90, 158},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG19[19][4] = {{211, 179, 258, 187},{198, 162, 167, 145},{188, 223, 220, 166},{186, 256, 133, 108},{219, 160, 243, 82},{4, 76, 202, 132},{29, 202, 218, 197},{144, 117, 63, 41},{116, 109, 0, 162},{216, 15, 3, 57},{115, 72, 74, 36},{233, 152, 229, 115},{144, 158, 0, 242},{95, 147, 216, 165},{216, 156, 269, 0},{73, 119, 200, 113},{261, 0, 234, 108},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG19[19][4] = {{294, 77, 226, 97},{118, 225, 35, 94},{167, 96, 213, 49},{330, 338, 302, 279},{207, 268, 111, 139},{165, 112, 265, 166},{243, 302, 128, 91},{250, 50, 237, 106},{1, 167, 294, 246},{339, 253, 127, 345},{201, 334, 110, 269},{53, 242, 286, 185},{347, 257, 125, 249},{304, 133, 131, 215},{167, 9, 163, 143},{47, 302, 210, 121},{188, 0, 7, 121},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG19[19][4] = {{122, 2, 106, 121},{69, 111, 111, 89},{98, 117, 57, 84},{31, 124, 63, 20},{100, 71, 117, 22},{10, 94, 93, 3},{59, 104, 101, 115},{101, 45, 49, 8},{110, 92, 95, 86},{63, 102, 39, 118},{9, 109, 14, 91},{67, 4, 97, 83},{23, 14, 97, 112},{62, 27, 117, 76},{35, 127, 77, 116},{111, 28, 123, 16},{31, 0, 117, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG19[19][4] = {{115, 76, 13, 84},{19, 76, 58, 87},{50, 73, 136, 0},{177, 96, 140, 83},{181, 144, 64, 7},{24, 139, 161, 153},{125, 139, 75, 56},{96, 178, 160, 132},{109, 103, 63, 113},{17, 150, 129, 39},{165, 25, 8, 149},{23, 99, 88, 20},{106, 162, 53, 112},{50, 114, 131, 108},{180, 139, 48, 79},{138, 112, 13, 39},{154, 0, 13, 165},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG19[19][4] = {{73, 303, 68, 220},{15, 294, 7, 208},{103, 27, 80, 30},{49, 261, 280, 197},{240, 161, 38, 61},{39, 133, 227, 175},{15, 4, 202, 79},{162, 80, 200, 281},{215, 129, 71, 303},{164, 300, 106, 253},{133, 76, 295, 164},{298, 266, 283, 53},{110, 72, 301, 44},{113, 83, 184, 28},{16, 260, 246, 77},{189, 301, 230, 319},{32, 0, 276, 68},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG19[19][4] = {{250, 2, 106, 121},{69, 239, 111, 89},{226, 117, 185, 84},{159, 124, 63, 20},{100, 71, 117, 150},{10, 222, 93, 131},{59, 104, 229, 243},{229, 173, 177, 136},{110, 220, 95, 86},{191, 102, 39, 246},{9, 109, 142, 219},{195, 132, 225, 211},{23, 142, 225, 240},{190, 155, 245, 76},{35, 255, 205, 244},{239, 28, 251, 144},{31, 0, 117, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG19[19][4] = {{307, 76, 205, 276},{19, 76, 250, 87},{50, 73, 328, 0},{369, 288, 332, 275},{181, 144, 256, 199},{216, 331, 161, 153},{317, 331, 267, 56},{288, 178, 160, 132},{109, 295, 63, 305},{17, 342, 129, 231},{357, 217, 200, 341},{215, 99, 88, 212},{106, 354, 53, 304},{242, 114, 131, 300},{180, 331, 240, 271},{330, 112, 205, 39},{346, 0, 13, 357},{1, 0, 0, 1},{0, 0, 0, 0}}; - -// BG2 -// CNG3 -static const uint16_t circShift_BG2_Z2_CNG3[3][6] = {{0, 0, 0, 0, 0, 1},{1, 0, 1, 0, 1, 1},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG3[3][6] = {{2, 0, 1, 2, 0, 1},{1, 0, 2, 2, 2, 1},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG3[3][6] = {{2, 0, 0, 2, 2, 3},{3, 0, 3, 0, 1, 3},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 0, 2, 4, 0, 4},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG3[3][6] = {{2, 3, 1, 2, 3, 1},{4, 3, 2, 5, 2, 1},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG3[3][6] = {{0, 1, 6, 3, 0, 5},{1, 3, 6, 5, 0, 5},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG3[3][6] = {{6, 4, 0, 2, 2, 3},{7, 4, 7, 4, 1, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG3[3][6] = {{0, 2, 4, 7, 8, 7},{6, 0, 1, 7, 4, 2},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 5, 2, 4, 0, 4},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG3[3][6] = {{7, 6, 9, 7, 7, 2},{9, 4, 5, 7, 5, 5},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG3[3][6] = {{8, 9, 7, 2, 3, 1},{4, 9, 2, 5, 2, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG3[3][6] = {{7, 2, 12, 11, 11, 12},{9, 12, 11, 1, 7, 11},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG3[3][6] = {{7, 1, 13, 10, 7, 12},{1, 10, 6, 5, 0, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG3[3][6] = {{0, 6, 4, 10, 6, 4},{14, 5, 1, 12, 1, 9},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG3[3][6] = {{14, 4, 8, 2, 10, 11},{15, 12, 7, 12, 1, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG3[3][6] = {{0, 2, 13, 7, 8, 7},{6, 9, 10, 7, 13, 2},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 5, 12, 14, 0, 4},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG3[3][6] = {{18, 6, 20, 7, 7, 13},{9, 4, 16, 7, 16, 16},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG3[3][6] = {{20, 21, 7, 14, 3, 13},{4, 21, 2, 17, 2, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG3[3][6] = {{20, 15, 12, 24, 11, 25},{22, 12, 11, 1, 7, 11},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG3[3][6] = {{21, 15, 27, 24, 7, 12},{1, 10, 6, 5, 14, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG3[3][6] = {{15, 6, 4, 25, 21, 4},{14, 5, 1, 27, 16, 24},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG3[3][6] = {{30, 4, 8, 18, 10, 27},{31, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG3[3][6] = {{18, 20, 13, 25, 8, 25},{24, 27, 10, 25, 31, 20},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 25, 32, 34, 20, 24},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG3[3][6] = {{18, 28, 42, 7, 29, 35},{31, 4, 16, 29, 16, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG3[3][6] = {{20, 45, 7, 14, 3, 37},{4, 21, 2, 17, 26, 31},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG3[3][6] = {{46, 41, 12, 50, 11, 25},{22, 38, 37, 27, 33, 37},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG3[3][6] = {{49, 43, 27, 52, 35, 40},{1, 38, 6, 5, 14, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG3[3][6] = {{15, 6, 4, 25, 21, 34},{44, 35, 1, 57, 46, 54},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG3[3][6] = {{30, 36, 8, 18, 42, 27},{63, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG3[3][6] = {{54, 56, 13, 61, 8, 25},{60, 63, 10, 25, 67, 56},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 74, 20, 64},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG3[3][6] = {{18, 72, 42, 51, 29, 79},{75, 48, 16, 73, 60, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG3[3][6] = {{20, 45, 7, 14, 3, 37},{52, 21, 50, 17, 74, 31},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG3[3][6] = {{98, 93, 64, 50, 11, 77},{22, 90, 89, 27, 85, 89},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG3[3][6] = {{49, 99, 27, 108, 35, 40},{1, 94, 6, 61, 70, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG3[3][6] = {{75, 66, 64, 25, 81, 34},{44, 95, 61, 57, 46, 114},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG3[3][6] = {{94, 100, 8, 18, 106, 91},{63, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG3[3][6] = {{54, 128, 13, 133, 80, 97},{132, 63, 10, 25, 139, 56},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 154, 20, 144},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG3[3][6] = {{18, 72, 42, 139, 117, 167},{163, 136, 104, 161, 148, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG3[3][6] = {{20, 45, 103, 110, 3, 37},{52, 21, 50, 17, 170, 31},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG3[3][6] = {{202, 197, 168, 50, 115, 181},{126, 194, 193, 27, 189, 193},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG3[3][6] = {{49, 211, 27, 108, 147, 40},{1, 94, 118, 61, 182, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG3[3][6] = {{195, 66, 64, 25, 201, 154},{44, 95, 181, 57, 46, 114},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG3[3][6] = {{222, 228, 8, 18, 106, 219},{63, 156, 151, 28, 1, 151},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG3[3][6] = {{54, 128, 13, 133, 80, 97},{132, 63, 10, 25, 139, 56},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 154, 20, 144},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG3[3][6] = {{18, 72, 42, 139, 117, 167},{163, 136, 104, 161, 148, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG3[3][6] = {{20, 45, 103, 110, 3, 37},{52, 21, 50, 17, 170, 31},{0, 0, 0, 0, 0, 0}}; -// CNG4 -static const uint16_t circShift_BG2_Z2_CNG4[4][20] = {{1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1},{0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1},{1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG4[4][20] = {{0, 1, 0, 2, 0, 1, 1, 1, 1, 2, 1, 0, 0, 2, 2, 1, 0, 0, 1, 0},{2, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2, 2, 0, 1, 1, 1, 0, 2, 1},{2, 2, 2, 0, 1, 0, 0, 1, 2, 1, 0, 2, 1, 0, 0, 2, 1, 0, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG4[4][20] = {{3, 2, 3, 3, 0, 3, 2, 0, 3, 2, 2, 2, 0, 3, 1, 0, 3, 3, 0, 1},{2, 2, 3, 3, 2, 0, 1, 2, 3, 3, 1, 0, 0, 1, 0, 2, 2, 0, 3, 1},{3, 2, 2, 1, 2, 1, 1, 2, 2, 0, 3, 2, 3, 0, 3, 2, 2, 2, 0, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{1, 0, 3, 3, 3, 3, 3, 2, 0, 4, 1, 0, 3, 4, 2, 3, 3, 4, 1, 2},{2, 2, 3, 4, 1, 4, 4, 3, 3, 2, 0, 2, 3, 3, 1, 2, 4, 3, 3, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG4[4][20] = {{0, 4, 3, 2, 0, 4, 4, 1, 4, 2, 4, 0, 3, 5, 5, 1, 0, 3, 1, 3},{2, 4, 3, 3, 0, 0, 1, 1, 2, 3, 3, 2, 5, 3, 4, 1, 1, 0, 5, 1},{5, 2, 5, 3, 4, 0, 3, 1, 5, 4, 0, 5, 4, 0, 0, 2, 4, 3, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG4[4][20] = {{4, 0, 4, 4, 5, 0, 6, 3, 2, 6, 6, 3, 1, 1, 0, 1, 2, 1, 0, 1},{2, 1, 0, 4, 2, 5, 6, 1, 5, 4, 2, 0, 5, 5, 4, 0, 6, 6, 0, 3},{3, 5, 4, 5, 2, 2, 1, 4, 1, 0, 4, 5, 4, 6, 6, 6, 4, 0, 1, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG4[4][20] = {{3, 6, 7, 3, 4, 7, 2, 4, 7, 6, 2, 2, 4, 3, 1, 4, 7, 7, 0, 1},{6, 6, 7, 7, 2, 4, 1, 2, 3, 3, 5, 4, 4, 5, 0, 6, 2, 4, 3, 5},{7, 6, 6, 5, 2, 1, 5, 2, 6, 0, 7, 6, 3, 4, 7, 2, 6, 2, 0, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG4[4][20] = {{6, 7, 6, 4, 8, 7, 2, 1, 5, 3, 7, 5, 0, 1, 6, 4, 1, 2, 6, 3},{6, 6, 5, 6, 7, 1, 4, 3, 7, 6, 5, 8, 6, 7, 2, 3, 7, 5, 1, 2},{6, 7, 5, 2, 7, 5, 6, 0, 2, 2, 7, 8, 2, 6, 3, 8, 1, 7, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{6, 5, 3, 3, 8, 8, 8, 7, 5, 9, 6, 0, 8, 9, 7, 3, 3, 4, 6, 2},{7, 7, 8, 9, 6, 4, 4, 3, 8, 7, 0, 2, 3, 8, 6, 2, 9, 8, 3, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG4[4][20] = {{9, 9, 1, 5, 8, 2, 7, 2, 0, 3, 9, 6, 6, 0, 5, 7, 2, 10, 6, 0},{1, 9, 0, 4, 9, 3, 8, 1, 0, 9, 2, 7, 5, 8, 9, 0, 7, 6, 2, 6},{6, 7, 4, 7, 0, 2, 8, 7, 7, 6, 6, 10, 7, 8, 7, 8, 8, 6, 5, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG4[4][20] = {{0, 10, 3, 8, 6, 10, 4, 1, 10, 2, 10, 0, 9, 5, 5, 1, 0, 9, 7, 3},{2, 10, 9, 3, 6, 6, 1, 7, 2, 9, 3, 8, 11, 9, 4, 7, 7, 0, 11, 7},{5, 8, 11, 9, 10, 0, 9, 7, 11, 4, 0, 5, 4, 0, 6, 2, 10, 9, 7, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG4[4][20] = {{4, 10, 5, 5, 12, 6, 1, 10, 0, 9, 1, 6, 7, 2, 1, 2, 1, 12, 11, 9},{1, 8, 12, 4, 8, 7, 9, 5, 1, 5, 4, 0, 4, 9, 11, 11, 4, 1, 7, 2},{0, 9, 10, 11, 10, 0, 10, 10, 0, 10, 7, 7, 10, 11, 12, 10, 9, 4, 10, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG4[4][20] = {{4, 7, 4, 4, 12, 7, 6, 10, 2, 13, 6, 10, 1, 1, 7, 1, 9, 8, 0, 8},{2, 1, 7, 4, 2, 12, 6, 1, 12, 4, 2, 7, 12, 5, 11, 7, 13, 13, 7, 3},{3, 12, 11, 12, 2, 2, 1, 11, 8, 7, 11, 12, 11, 13, 13, 13, 4, 0, 8, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG4[4][20] = {{14, 11, 4, 8, 8, 9, 12, 13, 5, 6, 7, 14, 1, 4, 10, 13, 12, 2, 3, 8},{5, 4, 2, 7, 1, 9, 2, 13, 4, 4, 9, 14, 2, 0, 0, 7, 11, 0, 7, 5},{0, 0, 12, 7, 0, 13, 6, 11, 6, 10, 1, 11, 1, 6, 10, 1, 0, 9, 0, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG4[4][20] = {{3, 14, 15, 3, 12, 7, 10, 12, 7, 14, 2, 2, 4, 3, 9, 12, 15, 15, 0, 1},{6, 14, 15, 15, 2, 4, 9, 10, 11, 11, 5, 12, 4, 5, 8, 6, 2, 12, 11, 5},{7, 6, 14, 5, 2, 9, 13, 2, 14, 8, 7, 6, 11, 4, 15, 10, 6, 2, 8, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG4[4][20] = {{6, 16, 15, 13, 17, 7, 2, 1, 14, 12, 16, 14, 9, 1, 6, 13, 1, 11, 6, 12},{6, 15, 14, 6, 16, 10, 13, 3, 7, 6, 5, 17, 6, 7, 11, 3, 16, 14, 1, 11},{15, 16, 5, 2, 16, 5, 6, 9, 2, 11, 7, 17, 2, 6, 3, 8, 1, 16, 12, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{16, 5, 13, 13, 18, 18, 8, 17, 15, 9, 6, 0, 8, 19, 17, 3, 13, 4, 16, 2},{17, 7, 8, 19, 6, 14, 4, 13, 18, 7, 10, 2, 13, 18, 6, 2, 19, 18, 3, 15},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG4[4][20] = {{20, 9, 12, 5, 19, 13, 18, 2, 0, 3, 20, 6, 17, 11, 16, 7, 2, 21, 6, 0},{1, 9, 11, 15, 9, 3, 8, 12, 0, 20, 2, 7, 5, 19, 20, 0, 7, 6, 2, 6},{17, 7, 4, 18, 0, 13, 19, 18, 18, 17, 17, 10, 7, 8, 18, 19, 19, 17, 16, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG4[4][20] = {{0, 22, 15, 20, 18, 10, 4, 13, 10, 14, 22, 12, 21, 5, 5, 1, 12, 21, 7, 3},{2, 22, 21, 15, 6, 18, 13, 7, 14, 9, 15, 8, 11, 9, 16, 7, 7, 12, 11, 7},{5, 8, 11, 9, 22, 12, 9, 19, 23, 16, 0, 17, 4, 12, 18, 2, 22, 9, 19, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG4[4][20] = {{17, 23, 18, 18, 25, 6, 14, 10, 0, 9, 14, 6, 7, 15, 1, 15, 1, 25, 11, 9},{1, 21, 25, 4, 21, 20, 9, 18, 14, 5, 4, 0, 17, 9, 11, 11, 17, 1, 7, 15},{13, 22, 23, 24, 10, 0, 10, 23, 13, 10, 20, 7, 23, 11, 25, 23, 9, 17, 23, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG4[4][20] = {{4, 7, 18, 4, 12, 7, 6, 24, 16, 13, 20, 24, 15, 1, 7, 1, 9, 22, 14, 8},{16, 15, 21, 4, 16, 26, 20, 15, 26, 4, 16, 21, 12, 5, 25, 7, 13, 13, 7, 17},{17, 12, 25, 26, 16, 2, 1, 25, 22, 7, 25, 26, 25, 13, 27, 27, 18, 14, 8, 25},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG4[4][20] = {{29, 26, 4, 8, 8, 9, 27, 28, 5, 21, 7, 29, 16, 4, 25, 28, 12, 17, 18, 23},{20, 19, 2, 7, 1, 24, 17, 13, 4, 19, 24, 14, 2, 15, 15, 22, 11, 15, 7, 5},{0, 15, 12, 7, 0, 28, 6, 11, 21, 10, 16, 26, 16, 21, 25, 16, 15, 9, 0, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG4[4][20] = {{19, 14, 31, 19, 28, 23, 26, 12, 23, 14, 2, 18, 4, 19, 25, 12, 31, 15, 0, 1},{22, 30, 15, 15, 2, 20, 9, 10, 11, 11, 5, 12, 4, 21, 8, 6, 2, 12, 11, 5},{7, 6, 14, 21, 18, 25, 29, 18, 14, 8, 7, 6, 11, 4, 31, 26, 6, 2, 24, 22},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG4[4][20] = {{6, 34, 33, 31, 17, 7, 2, 19, 32, 30, 34, 32, 27, 1, 24, 13, 1, 11, 6, 12},{24, 33, 14, 24, 34, 28, 31, 3, 7, 6, 5, 17, 6, 25, 29, 21, 34, 32, 1, 11},{15, 16, 23, 20, 34, 5, 6, 9, 20, 29, 7, 35, 2, 6, 21, 26, 1, 34, 30, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{16, 25, 33, 33, 18, 38, 28, 17, 35, 29, 6, 20, 8, 19, 37, 23, 13, 24, 36, 2},{37, 7, 8, 19, 6, 34, 24, 33, 38, 7, 30, 2, 13, 38, 6, 2, 19, 18, 23, 15},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG4[4][20] = {{42, 9, 34, 5, 41, 13, 40, 24, 22, 25, 20, 28, 17, 11, 38, 29, 24, 21, 28, 0},{23, 31, 11, 15, 31, 3, 8, 34, 0, 20, 24, 29, 5, 41, 20, 22, 7, 6, 24, 6},{39, 29, 4, 40, 22, 13, 41, 40, 18, 17, 17, 10, 29, 30, 40, 41, 19, 17, 38, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG4[4][20] = {{24, 22, 39, 20, 42, 10, 28, 13, 10, 38, 22, 36, 21, 29, 29, 25, 36, 45, 7, 3},{26, 22, 45, 15, 6, 42, 13, 31, 38, 9, 15, 8, 35, 33, 40, 7, 7, 36, 11, 7},{29, 8, 11, 33, 46, 12, 9, 19, 47, 16, 24, 17, 28, 12, 18, 26, 46, 9, 19, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG4[4][20] = {{43, 49, 18, 18, 25, 6, 40, 10, 0, 9, 14, 6, 7, 41, 1, 41, 1, 25, 37, 35},{27, 21, 51, 4, 47, 20, 35, 18, 14, 5, 30, 0, 17, 35, 11, 11, 17, 1, 7, 41},{13, 22, 49, 50, 36, 0, 10, 23, 13, 36, 46, 7, 23, 37, 25, 23, 35, 17, 23, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG4[4][20] = {{32, 35, 46, 4, 12, 35, 6, 24, 44, 41, 48, 52, 15, 29, 35, 1, 37, 50, 42, 8},{16, 43, 49, 32, 16, 26, 20, 43, 54, 32, 44, 21, 12, 33, 53, 7, 41, 13, 35, 45},{45, 40, 53, 54, 44, 30, 29, 25, 22, 7, 25, 54, 53, 13, 55, 27, 46, 42, 36, 25},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG4[4][20] = {{29, 56, 4, 38, 8, 39, 57, 58, 5, 21, 7, 59, 46, 4, 25, 58, 42, 47, 18, 53},{20, 49, 2, 37, 31, 24, 47, 13, 34, 19, 24, 14, 2, 15, 45, 52, 41, 45, 7, 35},{0, 45, 12, 37, 30, 28, 6, 11, 51, 10, 16, 56, 46, 21, 55, 46, 45, 9, 0, 50},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG4[4][20] = {{51, 14, 63, 51, 28, 23, 26, 12, 23, 46, 34, 50, 4, 19, 57, 12, 31, 47, 0, 1},{22, 30, 47, 47, 2, 20, 41, 42, 43, 11, 37, 44, 36, 21, 40, 38, 2, 44, 11, 37},{7, 38, 14, 21, 50, 57, 29, 18, 46, 8, 7, 38, 43, 36, 63, 26, 38, 34, 56, 54},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG4[4][20] = {{42, 70, 33, 67, 17, 7, 2, 19, 68, 30, 34, 32, 63, 37, 60, 49, 1, 47, 6, 48},{24, 69, 50, 24, 34, 28, 31, 3, 43, 42, 5, 17, 6, 25, 65, 57, 70, 32, 1, 47},{51, 16, 59, 56, 70, 41, 6, 9, 56, 29, 43, 71, 2, 42, 21, 26, 1, 70, 30, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{56, 65, 33, 73, 18, 78, 68, 17, 75, 69, 46, 20, 8, 19, 77, 63, 13, 24, 36, 2},{77, 7, 48, 19, 6, 74, 24, 33, 78, 7, 30, 42, 13, 78, 6, 2, 19, 58, 63, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG4[4][20] = {{86, 53, 34, 49, 85, 13, 40, 68, 22, 25, 64, 28, 17, 11, 38, 73, 24, 21, 72, 44},{67, 31, 11, 15, 31, 47, 52, 78, 44, 20, 24, 73, 49, 41, 64, 66, 7, 6, 68, 6},{83, 73, 4, 40, 22, 57, 85, 40, 62, 61, 61, 54, 29, 74, 84, 41, 19, 17, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG4[4][20] = {{72, 22, 39, 68, 90, 58, 76, 61, 10, 86, 70, 84, 69, 77, 77, 25, 84, 93, 7, 51},{74, 70, 93, 63, 6, 42, 61, 79, 86, 57, 15, 8, 83, 81, 88, 55, 55, 36, 11, 7},{29, 56, 11, 81, 46, 60, 57, 67, 95, 64, 72, 17, 28, 12, 18, 74, 94, 57, 67, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG4[4][20] = {{43, 101, 18, 70, 25, 6, 92, 10, 52, 9, 14, 6, 59, 93, 53, 93, 53, 77, 89, 87},{27, 73, 51, 4, 99, 20, 35, 18, 66, 57, 82, 0, 69, 87, 63, 63, 69, 53, 59, 93},{13, 22, 49, 102, 36, 52, 10, 23, 13, 88, 46, 59, 75, 89, 77, 75, 87, 69, 75, 63},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG4[4][20] = {{88, 35, 46, 4, 68, 35, 6, 80, 44, 41, 104, 108, 71, 29, 91, 1, 37, 106, 98, 8},{16, 43, 105, 88, 16, 26, 20, 43, 54, 88, 100, 21, 12, 89, 53, 63, 97, 69, 35, 101},{101, 40, 109, 110, 44, 86, 29, 81, 22, 63, 81, 110, 109, 69, 55, 83, 46, 42, 36, 81},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG4[4][20] = {{29, 56, 4, 38, 8, 39, 117, 118, 5, 81, 7, 59, 46, 64, 85, 58, 42, 47, 78, 53},{20, 49, 2, 97, 91, 84, 107, 13, 94, 19, 24, 14, 2, 15, 105, 112, 41, 45, 67, 95},{60, 105, 72, 37, 90, 88, 6, 11, 111, 10, 16, 116, 106, 21, 55, 106, 105, 69, 60, 110},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG4[4][20] = {{51, 14, 63, 51, 92, 87, 26, 76, 23, 46, 98, 114, 4, 19, 57, 12, 31, 111, 0, 1},{86, 94, 111, 47, 66, 20, 105, 42, 107, 11, 101, 44, 36, 85, 40, 38, 66, 44, 75, 101},{71, 102, 14, 85, 50, 57, 29, 82, 110, 8, 7, 38, 107, 36, 63, 26, 38, 34, 120, 118},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG4[4][20] = {{42, 70, 33, 139, 17, 79, 2, 91, 68, 30, 106, 32, 135, 37, 60, 121, 1, 119, 6, 48},{24, 69, 122, 96, 106, 28, 103, 75, 115, 42, 77, 89, 6, 25, 137, 129, 70, 32, 73, 47},{51, 88, 131, 128, 142, 41, 78, 81, 56, 101, 43, 71, 2, 114, 93, 26, 1, 142, 102, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{136, 65, 113, 73, 18, 158, 148, 17, 75, 69, 126, 20, 88, 19, 157, 63, 93, 24, 36, 2},{157, 87, 48, 99, 86, 154, 104, 33, 158, 87, 110, 122, 13, 78, 6, 82, 19, 138, 143, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG4[4][20] = {{86, 53, 122, 137, 173, 13, 128, 156, 110, 113, 64, 116, 105, 11, 126, 73, 112, 109, 160, 132},{67, 31, 11, 103, 31, 135, 52, 166, 132, 108, 24, 73, 137, 41, 152, 154, 7, 6, 156, 6},{83, 161, 4, 40, 22, 145, 173, 40, 150, 61, 149, 142, 29, 162, 172, 129, 19, 105, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG4[4][20] = {{72, 118, 39, 68, 186, 58, 76, 157, 106, 182, 70, 84, 165, 173, 77, 25, 84, 93, 103, 147},{74, 70, 93, 63, 6, 42, 61, 175, 86, 153, 111, 8, 179, 177, 184, 151, 151, 132, 107, 7},{29, 152, 11, 81, 46, 156, 153, 67, 95, 64, 168, 17, 124, 12, 18, 170, 190, 57, 163, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG4[4][20] = {{43, 101, 18, 174, 129, 110, 196, 10, 52, 113, 14, 110, 163, 197, 157, 197, 157, 181, 193, 191},{27, 177, 155, 108, 203, 124, 35, 122, 170, 161, 186, 0, 173, 191, 167, 167, 173, 157, 163, 197},{117, 22, 49, 102, 140, 52, 114, 23, 13, 88, 46, 163, 179, 193, 181, 179, 191, 173, 179, 167},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG4[4][20] = {{200, 147, 46, 116, 68, 35, 6, 80, 156, 153, 216, 108, 71, 29, 91, 1, 37, 106, 98, 120},{16, 43, 217, 200, 16, 138, 20, 43, 54, 88, 212, 21, 12, 201, 165, 175, 97, 181, 35, 101},{101, 152, 109, 110, 156, 86, 141, 81, 134, 63, 193, 110, 109, 69, 55, 83, 46, 154, 36, 81},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG4[4][20] = {{29, 176, 124, 38, 128, 39, 117, 238, 5, 81, 7, 179, 46, 184, 85, 178, 42, 167, 78, 53},{140, 169, 122, 217, 211, 84, 227, 13, 94, 19, 144, 14, 2, 135, 225, 112, 41, 45, 67, 215},{180, 225, 72, 157, 210, 88, 6, 11, 111, 130, 16, 116, 106, 141, 175, 106, 105, 189, 180, 230},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG4[4][20] = {{179, 142, 63, 51, 220, 87, 26, 76, 23, 46, 98, 242, 132, 147, 57, 140, 31, 239, 0, 129},{214, 94, 111, 175, 194, 20, 105, 42, 235, 139, 101, 44, 164, 85, 40, 38, 66, 172, 75, 229},{71, 230, 14, 213, 50, 185, 29, 210, 238, 8, 135, 166, 235, 36, 63, 154, 38, 34, 120, 118},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG4[4][20] = {{42, 70, 33, 139, 17, 79, 2, 91, 68, 30, 106, 32, 135, 37, 60, 121, 1, 119, 6, 48},{24, 69, 122, 96, 106, 28, 103, 75, 115, 42, 77, 89, 6, 25, 137, 129, 70, 32, 73, 47},{51, 88, 131, 128, 142, 41, 78, 81, 56, 101, 43, 71, 2, 114, 93, 26, 1, 142, 102, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{136, 65, 113, 73, 18, 158, 148, 17, 75, 69, 126, 20, 88, 19, 157, 63, 93, 24, 36, 2},{157, 87, 48, 99, 86, 154, 104, 33, 158, 87, 110, 122, 13, 78, 6, 82, 19, 138, 143, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG4[4][20] = {{86, 53, 122, 137, 173, 13, 128, 156, 110, 113, 64, 116, 105, 11, 126, 73, 112, 109, 160, 132},{67, 31, 11, 103, 31, 135, 52, 166, 132, 108, 24, 73, 137, 41, 152, 154, 7, 6, 156, 6},{83, 161, 4, 40, 22, 145, 173, 40, 150, 61, 149, 142, 29, 162, 172, 129, 19, 105, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG4[4][20] = {{72, 118, 39, 68, 186, 58, 76, 157, 106, 182, 70, 84, 165, 173, 77, 25, 84, 93, 103, 147},{74, 70, 93, 63, 6, 42, 61, 175, 86, 153, 111, 8, 179, 177, 184, 151, 151, 132, 107, 7},{29, 152, 11, 81, 46, 156, 153, 67, 95, 64, 168, 17, 124, 12, 18, 170, 190, 57, 163, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -// CNG5 -static const uint16_t circShift_BG2_Z2_CNG5[5][9] = {{1, 1, 1, 1, 1, 1, 0, 1, 1},{1, 1, 0, 0, 1, 0, 0, 1, 0},{1, 0, 0, 0, 1, 0, 0, 0, 1},{1, 1, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG5[5][9] = {{1, 2, 2, 1, 1, 0, 2, 1, 0},{0, 2, 2, 2, 1, 0, 2, 2, 1},{2, 1, 0, 2, 0, 0, 0, 1, 1},{1, 1, 1, 1, 1, 1, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG5[5][9] = {{3, 3, 3, 3, 3, 3, 2, 1, 3},{1, 1, 0, 2, 1, 2, 0, 3, 0},{1, 0, 2, 2, 3, 0, 2, 0, 1},{3, 1, 0, 2, 0, 2, 0, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{2, 2, 2, 2, 3, 4, 4, 0, 0},{1, 1, 4, 2, 2, 1, 4, 3, 1},{0, 0, 2, 1, 2, 3, 3, 2, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG5[5][9] = {{4, 5, 2, 1, 1, 3, 2, 1, 0},{0, 2, 2, 5, 4, 3, 5, 5, 4},{5, 4, 0, 5, 3, 3, 3, 1, 4},{4, 4, 4, 4, 1, 4, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG5[5][9] = {{2, 6, 1, 2, 1, 5, 6, 6, 1},{2, 3, 5, 1, 4, 4, 6, 6, 2},{2, 1, 5, 3, 5, 1, 3, 4, 3},{6, 0, 1, 0, 4, 6, 2, 6, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG5[5][9] = {{3, 3, 3, 3, 3, 3, 6, 5, 7},{5, 1, 4, 2, 1, 6, 4, 7, 0},{5, 0, 2, 6, 3, 0, 2, 0, 1},{7, 5, 0, 6, 0, 2, 0, 2, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG5[5][9] = {{7, 1, 1, 4, 8, 3, 3, 7, 6},{4, 5, 3, 1, 6, 0, 7, 1, 2},{6, 2, 8, 8, 4, 1, 2, 1, 5},{4, 6, 1, 2, 7, 8, 6, 7, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{7, 7, 7, 2, 8, 9, 4, 0, 5},{1, 6, 4, 2, 7, 1, 9, 3, 1},{5, 0, 2, 6, 7, 3, 8, 7, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG5[5][9] = {{5, 1, 3, 7, 0, 1, 2, 3, 7},{10, 3, 10, 3, 2, 4, 1, 5, 8},{0, 9, 2, 5, 8, 6, 7, 9, 5},{9, 1, 9, 6, 1, 0, 9, 2, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG5[5][9] = {{4, 11, 8, 1, 7, 3, 2, 7, 0},{0, 8, 8, 5, 10, 9, 11, 5, 10},{5, 10, 6, 11, 9, 3, 9, 7, 4},{10, 4, 10, 10, 7, 4, 6, 1, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG5[5][9] = {{4, 8, 0, 6, 0, 8, 5, 8, 5},{1, 8, 3, 1, 7, 5, 6, 3, 4},{10, 8, 9, 4, 0, 2, 12, 10, 11},{3, 12, 8, 4, 5, 7, 9, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG5[5][9] = {{2, 6, 1, 9, 8, 5, 6, 6, 8},{2, 10, 12, 1, 11, 4, 6, 6, 2},{2, 8, 12, 3, 12, 8, 10, 11, 3},{13, 0, 1, 0, 4, 13, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG5[5][9] = {{2, 8, 13, 3, 7, 5, 1, 11, 7},{13, 7, 4, 12, 7, 8, 8, 6, 4},{3, 13, 3, 2, 9, 10, 0, 10, 11},{8, 7, 6, 9, 12, 7, 8, 11, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG5[5][9] = {{11, 11, 11, 3, 3, 11, 14, 13, 7},{13, 9, 12, 2, 1, 14, 12, 15, 0},{13, 0, 2, 6, 3, 8, 2, 0, 9},{7, 5, 8, 14, 8, 2, 0, 10, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG5[5][9] = {{7, 10, 10, 4, 17, 12, 12, 16, 15},{4, 5, 12, 1, 15, 9, 7, 10, 2},{6, 11, 8, 8, 4, 10, 11, 10, 14},{13, 6, 10, 11, 7, 8, 6, 7, 16},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 12, 18, 19, 4, 0, 15},{11, 16, 4, 2, 17, 11, 9, 13, 11},{5, 0, 2, 6, 7, 3, 18, 7, 14},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG5[5][9] = {{16, 1, 3, 7, 11, 12, 2, 14, 18},{10, 3, 21, 3, 13, 4, 1, 16, 19},{11, 20, 2, 5, 8, 17, 18, 9, 5},{20, 1, 9, 17, 12, 11, 9, 13, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG5[5][9] = {{4, 11, 8, 1, 19, 15, 14, 19, 0},{12, 8, 20, 5, 22, 9, 23, 17, 10},{17, 22, 6, 11, 21, 15, 9, 7, 4},{10, 4, 10, 22, 19, 16, 6, 13, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG5[5][9] = {{4, 21, 13, 6, 13, 21, 5, 8, 18},{1, 8, 3, 1, 20, 5, 19, 16, 17},{23, 21, 9, 17, 0, 2, 12, 23, 24},{3, 25, 8, 4, 5, 20, 9, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG5[5][9] = {{2, 6, 15, 9, 8, 19, 20, 6, 22},{2, 10, 26, 1, 11, 18, 20, 6, 16},{16, 8, 26, 3, 12, 22, 10, 25, 17},{27, 0, 15, 0, 4, 13, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG5[5][9] = {{17, 8, 28, 18, 22, 20, 16, 26, 7},{28, 7, 4, 27, 22, 23, 23, 6, 19},{18, 28, 18, 17, 24, 25, 15, 10, 11},{8, 22, 21, 9, 12, 22, 8, 26, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG5[5][9] = {{11, 11, 11, 19, 19, 11, 30, 29, 7},{13, 25, 12, 2, 17, 14, 28, 15, 16},{29, 0, 18, 6, 3, 8, 18, 0, 9},{23, 21, 24, 30, 8, 18, 0, 26, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG5[5][9] = {{25, 10, 28, 4, 35, 12, 12, 34, 15},{4, 5, 30, 1, 15, 9, 7, 28, 20},{24, 29, 8, 26, 22, 28, 29, 28, 32},{13, 24, 28, 11, 25, 8, 6, 25, 34},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 32, 18, 39, 24, 20, 35},{11, 36, 4, 22, 17, 31, 29, 13, 11},{5, 20, 2, 26, 27, 23, 18, 7, 14},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG5[5][9] = {{16, 23, 3, 29, 11, 34, 2, 36, 40},{10, 25, 43, 3, 13, 26, 23, 38, 41},{11, 42, 24, 27, 8, 17, 18, 9, 5},{20, 23, 9, 39, 34, 33, 31, 13, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG5[5][9] = {{28, 11, 32, 1, 19, 39, 14, 19, 24},{36, 8, 44, 29, 22, 33, 23, 41, 10},{41, 22, 30, 35, 21, 39, 9, 7, 4},{34, 4, 10, 22, 19, 16, 6, 37, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG5[5][9] = {{30, 21, 39, 32, 39, 21, 5, 8, 18},{27, 8, 29, 1, 20, 31, 45, 16, 17},{49, 21, 35, 43, 0, 2, 38, 49, 50},{29, 51, 8, 30, 5, 20, 35, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG5[5][9] = {{2, 6, 43, 37, 36, 19, 48, 34, 50},{30, 38, 26, 1, 39, 46, 20, 6, 44},{16, 8, 54, 31, 40, 22, 38, 53, 17},{27, 0, 43, 28, 4, 41, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG5[5][9] = {{47, 38, 58, 48, 22, 50, 16, 26, 37},{58, 37, 34, 57, 52, 23, 53, 6, 19},{48, 28, 48, 47, 24, 55, 15, 10, 41},{8, 52, 51, 39, 42, 22, 38, 26, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG5[5][9] = {{11, 11, 11, 19, 51, 11, 62, 29, 7},{13, 57, 44, 2, 17, 14, 60, 15, 48},{61, 0, 18, 38, 3, 8, 50, 32, 9},{55, 53, 56, 30, 40, 50, 0, 58, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG5[5][9] = {{25, 46, 28, 4, 71, 48, 48, 70, 15},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 29, 44, 62, 58, 28, 65, 28, 32},{49, 24, 64, 47, 25, 8, 42, 61, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 32, 58, 79, 24, 20, 35},{51, 76, 4, 22, 57, 31, 29, 13, 51},{5, 20, 2, 26, 27, 63, 18, 7, 54},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG5[5][9] = {{16, 23, 3, 29, 11, 78, 46, 36, 84},{54, 25, 87, 3, 57, 70, 23, 38, 85},{11, 86, 24, 27, 8, 17, 62, 53, 5},{64, 23, 53, 39, 78, 77, 75, 57, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 62, 67, 24},{36, 8, 92, 29, 22, 81, 23, 41, 58},{89, 22, 78, 35, 21, 39, 9, 55, 52},{82, 52, 58, 70, 67, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG5[5][9] = {{82, 21, 39, 32, 91, 21, 57, 60, 70},{27, 60, 29, 53, 20, 31, 97, 68, 17},{101, 73, 35, 95, 52, 54, 38, 49, 50},{81, 51, 8, 82, 5, 72, 35, 57, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG5[5][9] = {{2, 62, 99, 37, 36, 75, 48, 90, 106},{30, 38, 26, 1, 95, 46, 20, 6, 44},{72, 8, 110, 31, 40, 22, 94, 109, 73},{83, 56, 99, 28, 4, 97, 2, 6, 64},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG5[5][9] = {{47, 38, 58, 48, 82, 50, 76, 26, 37},{118, 97, 94, 57, 112, 23, 53, 66, 19},{48, 88, 48, 47, 84, 55, 75, 70, 101},{68, 112, 51, 99, 42, 82, 98, 86, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG5[5][9] = {{75, 11, 11, 83, 115, 75, 126, 29, 71},{77, 57, 108, 2, 17, 14, 124, 15, 112},{61, 0, 82, 38, 3, 8, 114, 32, 9},{119, 117, 56, 94, 104, 114, 64, 122, 84},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG5[5][9] = {{97, 46, 28, 76, 143, 48, 120, 142, 87},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 101, 116, 62, 130, 28, 65, 100, 104},{49, 96, 64, 47, 97, 8, 42, 133, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{97, 17, 7, 112, 138, 79, 24, 100, 35},{51, 156, 4, 102, 57, 111, 109, 13, 51},{85, 20, 2, 26, 27, 143, 18, 7, 134},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG5[5][9] = {{104, 111, 91, 29, 11, 78, 134, 36, 84},{142, 25, 175, 91, 145, 158, 23, 38, 173},{99, 174, 24, 27, 8, 17, 62, 53, 93},{64, 23, 141, 127, 166, 165, 163, 145, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 158, 67, 120},{132, 104, 92, 125, 118, 177, 23, 137, 154},{185, 22, 174, 35, 21, 135, 9, 55, 52},{178, 52, 154, 166, 163, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG5[5][9] = {{186, 125, 39, 32, 91, 125, 57, 164, 70},{27, 60, 29, 53, 20, 31, 201, 172, 17},{205, 177, 35, 95, 52, 54, 142, 49, 50},{81, 51, 8, 186, 109, 176, 35, 161, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG5[5][9] = {{2, 174, 99, 37, 36, 75, 48, 90, 106},{30, 150, 138, 113, 95, 158, 132, 6, 44},{184, 8, 110, 143, 40, 134, 206, 221, 185},{83, 56, 99, 140, 116, 97, 2, 6, 176},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG5[5][9] = {{167, 38, 178, 48, 82, 170, 196, 146, 37},{238, 217, 214, 57, 232, 23, 173, 66, 139},{48, 208, 168, 167, 204, 175, 195, 190, 221},{68, 232, 51, 219, 162, 202, 218, 86, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG5[5][9] = {{203, 11, 11, 83, 115, 203, 254, 29, 71},{205, 185, 236, 2, 145, 142, 124, 143, 240},{61, 0, 210, 38, 3, 8, 114, 160, 9},{247, 117, 56, 222, 232, 242, 64, 122, 84},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG5[5][9] = {{97, 46, 28, 76, 143, 48, 120, 142, 87},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 101, 116, 62, 130, 28, 65, 100, 104},{49, 96, 64, 47, 97, 8, 42, 133, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{97, 17, 7, 112, 138, 79, 24, 100, 35},{51, 156, 4, 102, 57, 111, 109, 13, 51},{85, 20, 2, 26, 27, 143, 18, 7, 134},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG5[5][9] = {{104, 111, 91, 29, 11, 78, 134, 36, 84},{142, 25, 175, 91, 145, 158, 23, 38, 173},{99, 174, 24, 27, 8, 17, 62, 53, 93},{64, 23, 141, 127, 166, 165, 163, 145, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 158, 67, 120},{132, 104, 92, 125, 118, 177, 23, 137, 154},{185, 22, 174, 35, 21, 135, 9, 55, 52},{178, 52, 154, 166, 163, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -// CNG6 -static const uint16_t circShift_BG2_Z2_CNG6[6][3] = {{1, 1, 1},{1, 0, 1},{0, 1, 0},{1, 0, 1},{1, 0, 0},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG6[6][3] = {{1, 0, 2},{2, 2, 0},{1, 1, 1},{2, 1, 0},{0, 1, 2},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG6[6][3] = {{3, 3, 1},{1, 0, 3},{2, 1, 0},{3, 0, 3},{3, 2, 0},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG6[6][3] = {{0, 0, 0},{1, 4, 0},{2, 4, 3},{1, 0, 1},{4, 3, 3},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG6[6][3] = {{4, 3, 2},{2, 2, 0},{1, 4, 4},{2, 1, 0},{0, 4, 5},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG6[6][3] = {{3, 4, 5},{5, 6, 6},{2, 3, 0},{2, 5, 3},{4, 6, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG6[6][3] = {{7, 3, 1},{1, 4, 3},{2, 5, 4},{7, 4, 3},{7, 6, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG6[6][3] = {{4, 1, 7},{5, 6, 0},{3, 8, 8},{2, 7, 0},{8, 4, 2},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG6[6][3] = {{0, 0, 0},{1, 4, 5},{2, 9, 8},{1, 5, 6},{4, 8, 8},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG6[6][3] = {{2, 3, 4},{7, 0, 4},{2, 10, 2},{4, 1, 3},{5, 7, 0},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG6[6][3] = {{10, 9, 8},{8, 8, 6},{1, 4, 4},{8, 1, 6},{0, 4, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG6[6][3] = {{6, 7, 7},{10, 8, 0},{10, 3, 0},{2, 12, 3},{10, 12, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG6[6][3] = {{3, 11, 5},{12, 13, 13},{2, 3, 7},{9, 12, 10},{11, 13, 13},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG6[6][3] = {{1, 2, 11},{11, 12, 6},{4, 7, 12},{13, 4, 7},{12, 11, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG6[6][3] = {{7, 11, 1},{9, 4, 3},{2, 13, 12},{15, 12, 3},{7, 14, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG6[6][3] = {{4, 1, 7},{14, 15, 9},{12, 17, 17},{11, 7, 0},{17, 13, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG6[6][3] = {{0, 0, 0},{11, 4, 5},{2, 19, 8},{1, 5, 16},{4, 8, 18},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG6[6][3] = {{13, 3, 4},{18, 0, 15},{13, 10, 2},{15, 1, 3},{16, 7, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG6[6][3] = {{10, 9, 8},{20, 20, 18},{1, 4, 16},{8, 1, 6},{0, 16, 23},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG6[6][3] = {{6, 7, 7},{23, 8, 0},{10, 16, 13},{2, 12, 3},{10, 12, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG6[6][3] = {{17, 11, 19},{26, 27, 13},{2, 3, 21},{23, 26, 10},{25, 13, 13},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG6[6][3] = {{1, 17, 26},{11, 12, 6},{19, 22, 27},{28, 4, 22},{27, 26, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG6[6][3] = {{7, 27, 1},{9, 4, 19},{2, 13, 12},{31, 28, 3},{7, 30, 20},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG6[6][3] = {{4, 1, 25},{32, 15, 27},{12, 35, 35},{29, 25, 0},{35, 31, 29},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG6[6][3] = {{0, 0, 0},{11, 4, 5},{22, 19, 28},{21, 5, 16},{24, 28, 38},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG6[6][3] = {{35, 3, 4},{40, 22, 37},{35, 10, 24},{15, 23, 3},{16, 29, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG6[6][3] = {{10, 33, 32},{44, 44, 42},{25, 4, 16},{32, 1, 6},{0, 40, 47},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG6[6][3] = {{32, 7, 7},{49, 34, 26},{36, 42, 39},{28, 12, 3},{10, 12, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG6[6][3] = {{17, 11, 47},{26, 55, 13},{2, 31, 49},{51, 54, 38},{25, 41, 13},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG6[6][3] = {{1, 17, 26},{41, 12, 6},{49, 52, 27},{28, 4, 52},{27, 56, 34},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG6[6][3] = {{39, 27, 1},{41, 36, 19},{2, 45, 12},{31, 28, 3},{39, 30, 52},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG6[6][3] = {{40, 37, 25},{68, 15, 63},{12, 35, 35},{65, 61, 36},{71, 67, 65},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG6[6][3] = {{0, 0, 0},{51, 44, 45},{62, 19, 68},{61, 45, 16},{64, 68, 78},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG6[6][3] = {{79, 47, 48},{84, 66, 37},{35, 10, 24},{15, 67, 47},{60, 29, 55},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG6[6][3] = {{10, 33, 80},{44, 92, 90},{25, 4, 16},{80, 49, 6},{48, 88, 47},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG6[6][3] = {{32, 7, 59},{49, 34, 78},{36, 94, 39},{28, 64, 3},{62, 12, 58},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG6[6][3] = {{73, 11, 103},{26, 55, 13},{58, 31, 105},{107, 110, 38},{81, 97, 69},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG6[6][3] = {{1, 17, 86},{41, 72, 66},{49, 52, 87},{88, 4, 52},{87, 56, 34},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG6[6][3] = {{103, 27, 1},{41, 100, 19},{66, 45, 12},{31, 28, 3},{103, 30, 116},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG6[6][3] = {{40, 109, 97},{140, 87, 135},{84, 107, 35},{137, 133, 108},{71, 139, 65},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG6[6][3] = {{0, 0, 0},{131, 124, 45},{142, 99, 148},{141, 45, 96},{64, 148, 78},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG6[6][3] = {{79, 47, 48},{84, 154, 125},{35, 10, 24},{103, 155, 47},{60, 29, 55},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG6[6][3] = {{10, 129, 80},{44, 92, 186},{121, 100, 16},{80, 49, 102},{48, 184, 143},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG6[6][3] = {{136, 7, 163},{49, 34, 78},{36, 198, 143},{132, 168, 107},{62, 12, 58},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG6[6][3] = {{185, 123, 103},{138, 55, 13},{170, 31, 105},{219, 222, 150},{193, 209, 181},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG6[6][3] = {{121, 137, 86},{41, 72, 186},{169, 172, 87},{88, 124, 172},{207, 56, 154},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG6[6][3] = {{231, 155, 129},{41, 228, 147},{194, 45, 140},{159, 28, 3},{103, 158, 116},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG6[6][3] = {{40, 109, 97},{140, 87, 135},{84, 107, 35},{137, 133, 108},{71, 139, 65},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG6[6][3] = {{0, 0, 0},{131, 124, 45},{142, 99, 148},{141, 45, 96},{64, 148, 78},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG6[6][3] = {{79, 47, 48},{84, 154, 125},{35, 10, 24},{103, 155, 47},{60, 29, 55},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG6[6][3] = {{10, 129, 80},{44, 92, 186},{121, 100, 16},{80, 49, 102},{48, 184, 143},{0, 0, 0}}; -// CNG8 -static const uint16_t circShift_BG2_Z2_CNG8[8][2] = {{1, 1},{1, 0},{0, 0},{0, 0},{1, 0},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG8[8][2] = {{0, 1},{1, 0},{1, 0},{0, 2},{2, 0},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG8[8][2] = {{1, 1},{1, 2},{0, 0},{2, 0},{1, 0},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG8[8][2] = {{0, 0},{0, 4},{0, 4},{0, 4},{0, 3},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG8[8][2] = {{0, 1},{1, 0},{4, 3},{0, 2},{5, 0},{4, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG8[8][2] = {{2, 5},{5, 5},{2, 4},{6, 2},{4, 0},{1, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG8[8][2] = {{1, 1},{5, 2},{4, 4},{2, 4},{5, 0},{5, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG8[8][2] = {{3, 5},{8, 7},{8, 2},{8, 2},{7, 3},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG8[8][2] = {{0, 0},{0, 4},{0, 9},{0, 9},{0, 8},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG8[8][2] = {{2, 10},{0, 3},{3, 8},{3, 5},{7, 10},{2, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG8[8][2] = {{6, 1},{1, 6},{10, 9},{6, 2},{11, 6},{4, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG8[8][2] = {{0, 9},{6, 7},{7, 8},{9, 1},{1, 2},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG8[8][2] = {{2, 12},{12, 5},{9, 4},{13, 9},{11, 7},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG8[8][2] = {{10, 14},{11, 1},{11, 3},{6, 8},{8, 5},{7, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG8[8][2] = {{9, 1},{5, 2},{12, 12},{10, 4},{13, 0},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG8[8][2] = {{3, 5},{8, 16},{17, 2},{17, 2},{7, 3},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG8[8][2] = {{0, 0},{0, 14},{0, 19},{0, 9},{0, 8},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG8[8][2] = {{2, 10},{11, 14},{14, 19},{3, 16},{18, 10},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG8[8][2] = {{6, 1},{1, 18},{22, 21},{18, 14},{23, 18},{4, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG8[8][2] = {{13, 22},{19, 7},{20, 21},{9, 1},{14, 2},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG8[8][2] = {{16, 12},{26, 19},{23, 18},{13, 23},{11, 7},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG8[8][2] = {{25, 14},{11, 1},{11, 3},{21, 23},{23, 5},{22, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG8[8][2] = {{9, 17},{21, 18},{12, 12},{26, 20},{29, 16},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG8[8][2] = {{3, 23},{26, 34},{17, 20},{35, 2},{7, 3},{19, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG8[8][2] = {{0, 20},{0, 14},{0, 19},{0, 9},{0, 28},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG8[8][2] = {{24, 10},{11, 36},{14, 19},{3, 38},{40, 10},{35, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG8[8][2] = {{30, 25},{1, 18},{22, 21},{18, 14},{23, 18},{28, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG8[8][2] = {{39, 22},{19, 7},{20, 47},{9, 27},{40, 28},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG8[8][2] = {{16, 40},{54, 19},{23, 46},{13, 23},{39, 35},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG8[8][2] = {{25, 14},{11, 31},{11, 3},{21, 53},{23, 35},{52, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG8[8][2] = {{9, 17},{53, 50},{12, 44},{26, 52},{61, 48},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG8[8][2] = {{3, 23},{26, 34},{53, 20},{35, 38},{43, 39},{55, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG8[8][2] = {{0, 20},{0, 14},{0, 19},{0, 9},{0, 28},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG8[8][2] = {{68, 10},{55, 80},{14, 19},{3, 82},{40, 54},{35, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG8[8][2] = {{78, 25},{1, 18},{70, 21},{66, 14},{71, 18},{76, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG8[8][2] = {{39, 22},{19, 59},{72, 47},{61, 79},{92, 28},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG8[8][2] = {{72, 40},{110, 19},{23, 46},{69, 79},{95, 91},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG8[8][2] = {{25, 74},{11, 31},{71, 3},{21, 53},{23, 35},{112, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG8[8][2] = {{9, 81},{117, 114},{76, 44},{26, 52},{61, 112},{77, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG8[8][2] = {{3, 95},{26, 106},{53, 92},{35, 110},{115, 111},{127, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG8[8][2] = {{0, 20},{0, 94},{0, 99},{0, 9},{0, 108},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG8[8][2] = {{156, 98},{143, 168},{14, 107},{3, 82},{40, 142},{123, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG8[8][2] = {{174, 25},{97, 114},{166, 117},{66, 110},{71, 114},{172, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG8[8][2] = {{143, 126},{19, 163},{176, 47},{165, 183},{196, 132},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG8[8][2] = {{72, 152},{110, 131},{23, 46},{181, 191},{95, 91},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG8[8][2] = {{145, 74},{131, 31},{71, 3},{21, 53},{23, 155},{112, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG8[8][2] = {{9, 81},{117, 114},{204, 44},{26, 52},{189, 240},{205, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG8[8][2] = {{3, 95},{26, 106},{53, 92},{35, 110},{115, 111},{127, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG8[8][2] = {{0, 20},{0, 94},{0, 99},{0, 9},{0, 108},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG8[8][2] = {{156, 98},{143, 168},{14, 107},{3, 82},{40, 142},{123, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG8[8][2] = {{174, 25},{97, 114},{166, 117},{66, 110},{71, 114},{172, 1},{0, 0},{0, 0}}; -// CNG10 -static const uint16_t circShift_BG2_Z2_CNG10[10][2] = {{1, 0},{0, 0},{1, 0},{1, 0},{0, 1},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG10[10][2] = {{0, 1},{0, 1},{0, 2},{2, 0},{1, 0},{1, 1},{2, 1},{0, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG10[10][2] = {{3, 0},{2, 2},{1, 2},{1, 0},{2, 1},{0, 2},{0, 2},{0, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG10[10][2] = {{2, 3},{4, 0},{0, 2},{0, 1},{3, 2},{0, 2},{0, 3},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG10[10][2] = {{3, 4},{0, 1},{0, 5},{2, 0},{1, 3},{1, 4},{5, 4},{3, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG10[10][2] = {{4, 3},{2, 6},{3, 1},{2, 5},{3, 5},{4, 5},{1, 2},{3, 0},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG10[10][2] = {{7, 0},{6, 2},{5, 6},{5, 0},{2, 1},{4, 6},{0, 2},{4, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG10[10][2] = {{1, 3},{4, 4},{5, 4},{3, 4},{3, 1},{8, 4},{6, 2},{5, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG10[10][2] = {{7, 8},{4, 5},{0, 2},{0, 6},{8, 2},{0, 7},{0, 3},{5, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG10[10][2] = {{6, 9},{10, 9},{8, 9},{1, 6},{0, 6},{4, 1},{6, 6},{1, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG10[10][2] = {{3, 4},{0, 7},{0, 5},{8, 0},{7, 3},{7, 10},{5, 4},{3, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG10[10][2] = {{5, 10},{1, 9},{3, 5},{11, 7},{3, 8},{4, 3},{1, 9},{11, 4},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG10[10][2] = {{11, 3},{2, 6},{3, 8},{2, 12},{3, 12},{4, 12},{1, 2},{3, 7},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG10[10][2] = {{7, 14},{9, 6},{3, 5},{12, 5},{6, 9},{8, 4},{9, 13},{2, 0},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG10[10][2] = {{7, 8},{6, 10},{13, 14},{13, 8},{2, 1},{12, 6},{0, 2},{12, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG10[10][2] = {{1, 12},{4, 13},{14, 4},{12, 4},{12, 1},{8, 13},{15, 2},{14, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG10[10][2] = {{17, 18},{4, 15},{0, 2},{0, 6},{8, 12},{0, 17},{0, 13},{15, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG10[10][2] = {{17, 9},{21, 20},{19, 20},{1, 17},{11, 17},{15, 1},{17, 17},{1, 17},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG10[10][2] = {{3, 16},{12, 7},{0, 17},{20, 0},{7, 3},{19, 22},{17, 4},{3, 18},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG10[10][2] = {{18, 10},{1, 22},{3, 18},{24, 7},{3, 21},{17, 3},{14, 9},{24, 4},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG10[10][2] = {{25, 17},{16, 6},{3, 8},{16, 12},{3, 12},{4, 26},{1, 16},{3, 21},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG10[10][2] = {{22, 29},{24, 21},{3, 5},{27, 20},{6, 9},{23, 19},{9, 13},{17, 15},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG10[10][2] = {{7, 8},{6, 26},{29, 30},{29, 8},{2, 17},{28, 22},{0, 18},{28, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG10[10][2] = {{19, 12},{22, 13},{32, 22},{30, 4},{12, 1},{26, 13},{33, 20},{14, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG10[10][2] = {{17, 38},{4, 15},{0, 22},{0, 26},{8, 12},{0, 17},{0, 13},{15, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG10[10][2] = {{17, 9},{21, 42},{19, 42},{1, 39},{11, 17},{37, 1},{39, 17},{1, 17},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG10[10][2] = {{27, 40},{36, 31},{0, 17},{44, 24},{31, 27},{43, 22},{41, 28},{3, 42},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{50, 7},{29, 47},{17, 3},{14, 35},{24, 4},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG10[10][2] = {{53, 17},{44, 6},{3, 36},{44, 12},{3, 12},{32, 54},{29, 44},{31, 21},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG10[10][2] = {{22, 59},{54, 51},{3, 35},{27, 50},{36, 39},{23, 19},{9, 43},{47, 15},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG10[10][2] = {{39, 8},{38, 58},{61, 30},{61, 40},{34, 17},{28, 54},{32, 18},{60, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG10[10][2] = {{19, 48},{22, 49},{32, 22},{66, 4},{12, 1},{26, 49},{69, 56},{50, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG10[10][2] = {{57, 38},{44, 15},{0, 22},{0, 66},{8, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG10[10][2] = {{17, 53},{65, 86},{63, 86},{1, 39},{55, 17},{37, 1},{83, 17},{45, 17},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG10[10][2] = {{27, 40},{36, 79},{48, 17},{92, 72},{31, 27},{91, 22},{89, 28},{3, 90},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{102, 7},{81, 99},{17, 3},{14, 87},{76, 56},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG10[10][2] = {{53, 73},{44, 6},{3, 36},{44, 12},{3, 12},{88, 110},{29, 44},{31, 21},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG10[10][2] = {{22, 119},{54, 51},{63, 95},{27, 110},{96, 39},{23, 79},{9, 43},{47, 75},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG10[10][2] = {{39, 8},{38, 58},{125, 30},{125, 104},{98, 81},{28, 54},{96, 18},{124, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG10[10][2] = {{19, 120},{94, 121},{104, 22},{66, 4},{84, 73},{98, 49},{69, 128},{50, 79},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG10[10][2] = {{137, 38},{124, 15},{0, 102},{0, 146},{88, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG10[10][2] = {{17, 53},{65, 174},{63, 174},{1, 127},{55, 17},{37, 89},{171, 17},{133, 105},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG10[10][2] = {{27, 136},{36, 175},{48, 113},{92, 72},{31, 123},{187, 118},{185, 28},{3, 186},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{102, 111},{185, 203},{17, 3},{14, 191},{180, 160},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG10[10][2] = {{53, 185},{156, 6},{115, 36},{156, 124},{115, 124},{200, 110},{29, 156},{31, 133},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG10[10][2] = {{142, 239},{174, 171},{183, 95},{27, 110},{96, 159},{23, 199},{9, 43},{167, 75},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG10[10][2] = {{167, 8},{166, 58},{253, 158},{125, 104},{226, 209},{156, 54},{224, 18},{252, 128},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG10[10][2] = {{19, 120},{94, 121},{104, 22},{66, 4},{84, 73},{98, 49},{69, 128},{50, 79},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG10[10][2] = {{137, 38},{124, 15},{0, 102},{0, 146},{88, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG10[10][2] = {{17, 53},{65, 174},{63, 174},{1, 127},{55, 17},{37, 89},{171, 17},{133, 105},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG10[10][2] = {{27, 136},{36, 175},{48, 113},{92, 72},{31, 123},{187, 118},{185, 28},{3, 186},{0, 0},{0, 0}}; - -// Startaddressses in the BN buffer of the different CN groups -// BG1 -// Group of CNs with 3 BNs (CNG3) / only this group is independent of Z -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG3[3][1] = {{111360},{100224},{0}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG3[3][1] = {{52224},{47616},{0}}; -// R89 -static const uint32_t startAddrBnProcBuf_BG1_R89_CNG3[3][1] = {{29952},{28032},{0}}; - -// Group of CNs with 4 BNs (CNG4) -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG4[4][5] = {{105984, 107904, 120192, 120576, 109440},{40704, 74496, 43008, 47232, 43008},{41856, 19200, 61440, 23424, 92544},{0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG4[4][5] = {{0, 0, 0, 0, 0},{0, 1, 1, 0, 0},{1, 0, 3, 0, 1},{23, 33, 36, 38, 41}}; - -// Group of CNs with 5 BNs (CNG5) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG5[5][18] = {{116736, 105216, 105600, 117504, 117888, 106368, 118272, 106752, 118656, 107136, 119040, 107520, 119424, 119808, 108288, 108672, 109056, 120960},{87936, 30336, 39552, 31872, 46848, 58368, 89472, 87936, 89472, 33408, 89472, 41856, 61440, 30336, 73344, 74496, 61440, 92544},{72192, 87936, 86400, 46464, 31872, 97536, 73344, 89472, 59904, 61440, 31872, 91008, 33408, 91008, 91008, 31872, 98688, 33408},{58368, 97152, 56832, 30336, 73344, 21888, 21888, 22656, 22656, 74496, 59904, 91008, 97920, 92544, 33408, 98304, 23424, 92544},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG5[5][18] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{2, 0, 0, 0, 0, 1, 1, 0, 2, 0, 0, 0, 1, 1, 0, 0, 2, 0},{1, 1, 0, 0, 3, 0, 1, 3, 1, 0, 2, 2, 2, 1, 0, 1, 0, 1},{3, 0, 1, 2, 2, 1, 0, 1, 0, 2, 3, 3, 0, 2, 3, 0, 1, 3},{18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 40}}; - -// Group of CNs with 6 BNs (CNG6) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG6[6][8] = {{114432, 103680, 115584, 104064, 115968, 116352, 104832, 117120},{68736, 69888, 55296, 86400, 104448, 71040, 17280, 72192},{83328, 56832, 58368, 71040, 84864, 28800, 59904, 46080},{40704, 41856, 56832, 96768, 40704, 58368, 43008, 59904},{18816, 84864, 71040, 30336, 86400, 86400, 72192, 87936},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG6[6][8] = {{0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 1, 2, 0, 0, 0, 0},{0, 0, 2, 1, 0, 1, 2, 0},{2, 2, 3, 0, 1, 0, 2, 0},{0, 3, 2, 3, 1, 3, 2, 3},{9, 12, 13, 14, 15, 16, 17, 20}}; - -// Group of CNs with 7 BNs (CNG7) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG7[7][5] = {{112512, 102144, 114048, 114816, 115200},{100992, 28800, 102912, 84864, 103296},{45312, 45696, 83328, 28800, 84864},{80256, 81792, 55296, 56832, 69888},{38400, 39552, 68736, 55296, 96384},{52224, 53760, 96000, 69888, 21120},{0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG7[7][5] = {{0, 0, 0, 0, 0},{0, 0, 0, 2, 0},{0, 0, 1, 2, 1},{0, 0, 0, 2, 1},{1, 1, 1, 3, 0},{1, 1, 0, 2, 1},{3, 6, 8, 10, 11}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG7[7][3] = {{53376, 49536, 54912},{48384, 13440, 50304},{22656, 25344, 43392},{22656, 25344, 43392},{22656, 25344, 43392},{22656, 25344, 43392},{0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG7[7][3] = {{0, 0, 0},{0, 0, 0},{1, 1, 0},{2, 2, 1},{3, 3, 3},{4, 4, 5},{3, 6, 8}}; - -// Group of CNs with 8 BNs (CNG8) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG8[8][2] = {{111744, 113664},{100608, 102528},{66432, 83328},{80256, 55296},{52224, 68736},{66432, 83328},{80256, 18432},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG8[8][2] = {{0, 0},{0, 0},{0, 2},{2, 2},{2, 2},{2, 3},{3, 0},{1, 7}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG8[8][2] = {{52608, 54528},{48000, 49920},{22656, 43392},{37248, 43392},{37248, 43392},{37248, 43392},{37248, 8064},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG8[8][2] = {{0, 0},{0, 0},{0, 2},{2, 4},{4, 6},{6, 7},{7, 3},{1, 7}}; - -// Group of CNs with 9 BNs (CNG9) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG9[9][2] = {{112128, 113280},{38400, 101760},{80256, 81792},{52224, 53760},{66432, 67584},{52224, 53760},{95232, 95616},{38400, 39552},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG9[9][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{1, 1},{3, 3},{0, 0},{2, 2},{2, 5}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG9[9][2] = {{52992, 54144},{13440, 49152},{37248, 40320},{37248, 40320},{37248, 40320},{22656, 25344},{37248, 40320},{22656, 25344},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG9[9][2] = {{0, 0},{1, 0},{0, 0},{1, 1},{3, 3},{5, 5},{5, 5},{6, 6},{2, 5}}; - -// Group of CNs with 10 BNs (CNG10) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG10[10][1] = {{112896},{101376},{67584},{81792},{53760},{28800},{67584},{81792},{21120},{0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG10[10][1] = {{0},{0},{0},{2},{2},{3},{2},{3},{0},{4}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG10[10][1] = {{53760},{48768},{25344},{40320},{40320},{13440},{40320},{40320},{8064},{0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG10[10][1] = {{0},{0},{0},{2},{4},{2},{6},{7},{4},{4}}; - -// Group of CNs with 19 BNs (CNG19) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG19[19][4] = {{109824, 110208, 110592, 110976},{99072, 25728, 99456, 99840},{24192, 64128, 27264, 65280},{62976, 44160, 44544, 44928},{16128, 16512, 16896, 37248},{34944, 75648, 36096, 78720},{24192, 34944, 77184, 37248},{75648, 25728, 36096, 78720},{47616, 49152, 27264, 50688},{75648, 77184, 77184, 78720},{62976, 47616, 64128, 65280},{24192, 25728, 49152, 50688},{47616, 49152, 27264, 50688},{94080, 47616, 49152, 50688},{24192, 25728, 94464, 94848},{34944, 64128, 27264, 37248},{62976, 77184, 36096, 65280},{75648, 18048, 20352, 78720},{17664, 19584, 19584, 20352}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{1, 1, 0, 1},{1, 1, 1, 1},{0, 0, 1, 0},{2, 2, 1, 2},{1, 1, 1, 1},{2, 2, 1, 1},{2, 2, 2, 2},{0, 3, 3, 3},{3, 3, 0, 0},{2, 2, 3, 2},{2, 3, 2, 2},{3, 0, 0, 3},{0, 0, 1, 1}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG19[19][4] = {{50688, 51072, 51456, 51840},{46464, 11136, 46848, 47232},{9984, 17280, 12288, 19968},{14592, 14592, 17280, 19968},{4224, 6144, 8064, 12288},{9984, 14592, 11136, 19968},{4224, 14592, 17280, 19968},{28032, 6144, 17280, 34176},{28032, 31104, 8064, 34176},{28032, 31104, 31104, 34176},{28032, 14592, 31104, 34176},{4224, 6144, 17280, 19968},{28032, 31104, 8064, 34176},{28032, 14592, 17280, 19968},{9984, 11136, 31104, 34176},{14592, 31104, 12288, 19968},{28032, 31104, 17280, 34176},{28032, 6144, 6144, 34176},{4224, 4224, 3456, 3840}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 1, 1, 1},{0, 0, 0, 1},{1, 2, 1, 2},{1, 3, 2, 3},{0, 1, 3, 0},{1, 1, 1, 1},{2, 2, 0, 2},{3, 4, 3, 3},{2, 2, 4, 4},{4, 4, 2, 4},{5, 5, 5, 5},{2, 2, 5, 5},{6, 6, 2, 6},{6, 7, 6, 6},{7, 3, 4, 7},{3, 4, 0, 0}}; -// R89 -static const uint32_t startAddrBnProcBuf_BG1_R89_CNG19[19][4] = {{28416, 28800, 29184, 29568},{26880, 10752, 27264, 27648},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 1536, 1536, 18816},{384, 384, 384, 1536}}; -static const uint8_t bnPosBnProcBuf_BG1_R89_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 1, 0, 1},{1, 2, 2, 2},{3, 3, 3, 4},{4, 5, 4, 5},{7, 6, 5, 6},{8, 7, 6, 8},{9, 9, 7, 9},{10, 10, 8, 10},{11, 12, 11, 11},{13, 13, 12, 12},{14, 14, 13, 14},{16, 15, 15, 15},{17, 17, 16, 16},{18, 19, 17, 18},{19, 20, 18, 19},{20, 0, 1, 20},{0, 1, 2, 2}}; - -// BG2 -// CNG3 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG3[3][6] = {{72960, 64128, 64512, 64896, 74112, 31872},{34176, 49536, 23040, 17664, 40320, 41088},{0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 1, 0, 0},{18, 21, 23, 25, 27, 33}}; -// CNG4 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG4[4][20] = {{59520, 60672, 70272, 62208, 62592, 62976, 72576, 63360, 63744, 73344, 73728, 65280, 36096, 65664, 74496, 66048, 74880, 66432, 36864, 75264},{67968, 69120, 16896, 29568, 22656, 72192, 16896, 20352, 17664, 34560, 35328, 50688, 45696, 31872, 51072, 36480, 51456, 46464, 32640, 51840},{52992, 28032, 54912, 55680, 44544, 30336, 56832, 39552, 49152, 25728, 49920, 31104, 31104, 40704, 57216, 46080, 57600, 32640, 41472, 57984},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},{0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},{0, 4, 8, 11, 14, 15, 16, 17, 19, 20, 24, 28, 29, 30, 31, 32, 34, 35, 36, 37}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG4[4][8] = {{36096, 37248, 43776, 38784, 39168, 39552, 46080, 39936},{41472, 42624, 9984, 20352, 22272, 45696, 9984, 22272},{30720, 11520, 32640, 33408, 29568, 22272, 34560, 26496},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG4[4][8] = {{0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 4, 1, 0, 1, 2},{0, 0, 0, 0, 0, 4, 0, 0},{0, 4, 8, 11, 14, 15, 16, 17}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG4[4][1] = {{18816},{16128},{15360},{0}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG4[4][1] = {{0},{0},{1},{0}}; -// CNG5 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG5[5][9] = {{69504, 61056, 61440, 61824, 71040, 71424, 71808, 34944, 35712},{19584, 69888, 44160, 70656, 22272, 25344, 48768, 44928, 50304},{28800, 21888, 24960, 19968, 55296, 56064, 56448, 30336, 45312},{54528, 43776, 38400, 38784, 39168, 28800, 29568, 39936, 26112},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 1, 0},{0, 0, 0, 0, 0, 1, 1, 0, 0},{5, 6, 7, 9, 10, 12, 13, 22, 26}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG5[5][7] = {{43008, 37632, 38016, 38400, 44544, 44928, 45312},{18432, 43392, 29184, 44160, 20352, 22272, 22272},{18432, 18432, 20352, 20352, 33024, 33792, 34176},{32256, 28800, 25344, 25728, 26112, 11904, 12288},{0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG5[5][7] = {{0, 0, 0, 0, 0, 0, 0},{2, 0, 0, 0, 1, 3, 0},{4, 1, 3, 2, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0},{5, 6, 7, 9, 10, 12, 13}}; -// R23 -// none -// CNG6 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG6[6][3] = {{59904, 60288, 68736},{68352, 48000, 48384},{47616, 43008, 43392},{42624, 24576, 54144},{53376, 53760, 38016},{0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG6[6][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{1, 2, 3}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG6[6][3] = {{36480, 36864, 42240},{41856, 18432, 20352},{16512, 28032, 28416},{27648, 18432, 31872},{31104, 31488, 24960},{0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG6[6][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 3, 0},{0, 0, 0},{1, 2, 3}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG6[6][2] = {{19200, 19584},{16896, 12672},{11520, 12672},{11520, 12672},{16128, 16896},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG6[6][2] = {{0, 0},{0, 0},{0, 1},{1, 2},{1, 1},{1, 2}}; -// CNG8 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG8[8][2] = {{58368, 59136},{66816, 67200},{33408, 16128},{14592, 15360},{20736, 18816},{23424, 27264},{26496, 27264},{52224, 37248}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{0, 0},{0, 0},{0, 1},{0, 0}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG8[8][2] = {{34944, 35712},{40320, 40704},{6912, 9216},{7680, 8448},{12672, 14592},{12672, 14592},{12672, 11136},{29952, 24192}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{1, 2},{3, 4},{4, 0},{0, 0}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG8[8][2] = {{17664, 18432},{13824, 14592},{1152, 7296},{3456, 5376},{3456, 5376},{9216, 5376},{3456, 2304},{13824, 1152}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{2, 3},{2, 4},{4, 1},{1, 2}}; -// CNG10 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG10[10][2] = {{58752, 67584},{15360, 33792},{14592, 16128},{46848, 47232},{21120, 21504},{41856, 42240},{18432, 19200},{23808, 24192},{52608, 28032},{26496, 37632}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{1, 0}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG10[10][2] = {{35328, 41088},{8448, 7296},{7680, 9216},{12672, 14592},{14592, 16512},{26880, 27264},{12672, 16512},{14592, 16512},{30336, 16512},{10752, 24576}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{1, 1},{0, 0},{2, 2},{3, 3},{0, 4},{0, 0}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG10[10][2] = {{18048, 15360},{5376, 2304},{3456, 7296},{9216, 10368},{5376, 7296},{9216, 10368},{3456, 7296},{10368, 11520},{14592, 7296},{1152, 2304}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{2, 2},{1, 1},{3, 3},{2, 2},{1, 4},{1, 2}}; - -// LUT for llr2llrProcBuf -// BG1 -// R13 -static const uint16_t llr2llrProcBufAddr_BG1_R13[26] = {25728,25344,17664,22272,20352,16128,19200,23424,19200,17664,23424,20736,23424,22272,20736,17664,20736,20736,24960,17664,19200,22272,23424,16512,16896,16896}; -static const uint8_t llr2llrProcBufBnPos_BG1_R13[26] = {0,0,0,0,0,0,0,0,1,1,1,0,2,1,1,2,2,3,0,3,2,2,3,0,0,1}; -// R23 -static const uint16_t llr2llrProcBufAddr_BG1_R23[26] = {13056,12672,5760,6912,6912,3840,5760,6912,6912,3840,9600,9600,9600,9600,6912,3840,9600,6912,9600,5760,6912,9600,9600,3840,3840,3456}; -static const uint8_t llr2llrProcBufBnPos_BG1_R23[26] = {0,0,0,0,1,0,1,2,3,1,0,1,2,3,4,2,4,5,5,2,6,6,7,3,4,0}; -// R89 -static const uint16_t llr2llrProcBufAddr_BG1_R89[26] = {9984,9600,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,384,384,384}; -static const uint8_t llr2llrProcBufBnPos_BG1_R89[26] = {0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,0,1,2}; - -// BG2 -// R15 -static const uint16_t llr2llrProcBufAddr_BG2_R15[14] = {19200,19584,17280,14592,14592,18432,15744,18048,15360,16128,16512,18816,16512,17664}; -static const uint8_t llr2llrProcBufBnPos_BG2_R15[14] = {0,0,0,0,1,0,0,0,0,0,0,0,1,0}; -// R13 -static const uint16_t llr2llrProcBufAddr_BG2_R13[14] = {11520,11904,6912,7296,7296,8448,8448,10752,8448,8448,8448,11136,8064,10368}; -static const uint8_t llr2llrProcBufBnPos_BG2_R13[14] = {0,0,0,0,1,0,1,0,2,3,4,0,0,0}; -// R23 -static const uint16_t llr2llrProcBufAddr_BG2_R23[14] = {6144,5376,1152,2304,2304,4224,2304,4224,2304,4224,2304,5376,1152,1152}; -static const uint8_t llr2llrProcBufBnPos_BG2_R23[14] = {0,0,0,0,1,0,2,1,3,2,4,1,1,2}; - -// LUT for llr2cnProcBuf -// LUTs are not rate dependent, however the number of CN in a CNG varies with rate -// CNG3 -// BG1 -static const uint8_t posBnInCnProcBuf_BG1_CNG3[3][1] = {{0},{1},{26}}; -// CNG4 -static const uint8_t posBnInCnProcBuf_BG1_CNG4[4][5] = {{1, 1, 0, 0, 1},{6, 13, 8, 4, 6},{8, 23, 17, 24, 10},{49, 59, 62, 64, 67}}; -// CNG5 -static const uint8_t posBnInCnProcBuf_BG1_CNG5[5][18] = {{0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0},{12, 2, 6, 2, 4, 14, 10, 7, 12, 2, 7, 6, 14, 9, 3, 3, 16, 7},{13, 10, 7, 4, 19, 18, 13, 22, 14, 11, 15, 12, 15, 10, 7, 9, 18, 9},{17, 18, 14, 15, 21, 25, 24, 25, 24, 21, 17, 22, 18, 12, 19, 18, 25, 22},{44, 45, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 63, 65, 66}}; -// CNG6 -static const uint8_t posBnInCnProcBuf_BG1_CNG6[6][8] = {{0, 1, 0, 1, 0, 0, 1, 0},{3, 3, 14, 12, 1, 3, 5, 3},{7, 11, 16, 13, 7, 9, 16, 4},{20, 20, 17, 18, 8, 11, 20, 11},{23, 22, 21, 19, 10, 22, 21, 22},{35, 38, 39, 40, 41, 42, 43, 46}}; -// CNG7 -static const uint8_t posBnInCnProcBuf_BG1_CNG7[7][5] = {{0, 1, 0, 0, 0},{1, 2, 1, 12, 1},{4, 4, 10, 15, 10},{7, 7, 11, 16, 13},{8, 8, 13, 17, 18},{14, 14, 18, 21, 25},{29, 32, 34, 36, 37}}; -// CNG8 -static const uint8_t posBnInCnProcBuf_BG1_CNG8[8][2] = {{0, 0},{1, 1},{3, 12},{12, 16},{16, 21},{21, 22},{22, 23},{27, 33}}; -// CNG9 -static const uint8_t posBnInCnProcBuf_BG1_CNG9[9][2] = {{0, 0},{6, 1},{10, 10},{11, 11},{13, 13},{17, 17},{18, 18},{20, 20},{28, 31}}; -// CNG10 -static const uint8_t posBnInCnProcBuf_BG1_CNG10[10][1] = {{0},{1},{3},{12},{16},{19},{21},{22},{24},{30}}; -// CNG19 -static const uint8_t posBnInCnProcBuf_BG1_CNG19[19][4] = {{0, 0, 0, 0},{1, 2, 1, 1},{2, 3, 2, 3},{3, 4, 4, 4},{5, 5, 5, 6},{6, 7, 6, 7},{9, 8, 7, 8},{10, 9, 8, 10},{11, 11, 9, 11},{12, 12, 10, 12},{13, 14, 13, 13},{15, 15, 14, 14},{16, 16, 15, 16},{18, 17, 17, 17},{19, 19, 18, 18},{20, 21, 19, 20},{21, 22, 20, 21},{22, 23, 24, 22},{23, 24, 25, 25}}; - -// BG2 -static const uint8_t posBnInCnProcBuf_BG2_CNG3[3][6] = {{1, 0, 0, 0, 1, 10},{2, 5, 6, 4, 13, 13},{32, 35, 37, 39, 41, 47}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG4[4][20] = {{0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 2, 0, 1, 0, 1, 0, 2, 1},{1, 1, 3, 10, 6, 1, 4, 8, 3, 2, 2, 5, 7, 12, 5, 2, 5, 7, 10, 5},{11, 12, 11, 11, 7, 10, 11, 13, 5, 9, 5, 12, 10, 13, 11, 7, 11, 12, 13, 11},{14, 18, 22, 25, 28, 29, 30, 31, 33, 34, 38, 42, 43, 44, 45, 46, 48, 49, 50, 51}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG5[5][9] = {{1, 0, 0, 0, 1, 1, 1, 2, 2},{8, 1, 7, 1, 6, 9, 5, 7, 5},{10, 6, 9, 8, 11, 11, 11, 12, 7},{11, 7, 13, 13, 13, 12, 12, 13, 9},{19, 20, 21, 23, 24, 26, 27, 36, 40}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG6[6][3] = {{0, 0, 1},{1, 5, 5},{5, 7, 7},{7, 9, 11},{11, 11, 13},{15, 16, 17}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG8[8][2] = {{0, 0},{1, 1},{2, 3},{3, 4},{6, 8},{9, 10},{10, 12},{11, 13}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG10[10][2] = {{0, 1},{3, 2},{4, 4},{5, 5},{6, 6},{7, 7},{8, 8},{9, 9},{11, 10},{12, 13}}; - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_mPass.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_mPass.h deleted file mode 100644 index f2373c6341..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_mPass.h +++ /dev/null @@ -1,1213 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_mPass.h - * \brief Defines the functions for message passing - * -*/ -#ifndef __NR_LDPC_MPASS__H__ -#define __NR_LDPC_MPASS__H__ - -#include -#include "nrLDPCdecoder_defs.h" -//#include -/** - \brief Circular memcpy1 - |<- rem->|<- circular shift ->| - (src) str2 = |--------xxxxxxxxxxxxxxxxxxxxx| - \_______________ - \ - (dst) str1 = |xxxxxxxxxxxxxxxxxxxxx---------| - \param str1 Pointer to the start of the destination buffer - \param str2 Pointer to the source buffer - \param Z Lifting size - \param cshift Circular shift -*/ -//more faster memcpy by using "rep movsb", which on modern processors is highly optimized - -void *memcpy1(void *dst, const void *src, size_t n) -{ - void *ret = dst; - asm volatile("rep movsb" : "+D" (dst) : "c"(n), "S"(src) : "cc", "memory"); - return ret; -} - - -static inline void *nrLDPC_inv_circ_memcpy1(int8_t *str1, const int8_t *str2, uint16_t Z, uint16_t cshift) -{ - uint16_t rem = Z - cshift; - memcpy1(str1+cshift, str2 , rem); - memcpy1(str1 , str2+rem, cshift); - - return(str1); -} - -/** - \brief Inverse circular memcpy1 - |<- circular shift ->|<- rem->| - (src) str2 = |xxxxxxxxxxxxxxxxxxxx\--------| - \ - (dst) str1 = |--------xxxxxxxxxxxxxxxxxxxxx| - \param str1 Pointer to the start of the destination buffer - \param str2 Pointer to the source buffer - \param Z Lifting size - \param cshift Circular shift -*/ -static inline void *nrLDPC_circ_memcpy1(int8_t *str1, const int8_t *str2, uint16_t Z, uint16_t cshift) -{ - uint16_t rem = Z - cshift; - memcpy1(str1 , str2+cshift, rem); - memcpy1(str1+rem , str2 , cshift); - - return(str1); -} - -/** - \brief Copies the input LLRs to their corresponding place in the LLR processing buffer. - Example: BG2 - | 0| 0| LLRs --> | - BN Groups |22|23|10| 5| 5|14| 7|13| 6| 8| 9|16| 9|12|1|1|...|1| - ^---------------------------------------/---- / - _________________________/ | / - / ____________________________|___/ - / / \ - LLR Proc Buffer (BNG) | 1| 5| 6| 7| 8| 9|10|12|13|14|16|22|23| - Number BN in BNG(R15) |38| 2| 1| 1| 1| 2| 1| 1| 1| 1| 1| 1| 1| - Idx: 0 ^ ^ ^ - 38*384=14592 _____| ... | | - 50*384=19200 ----------------------------------- | - 51*384=19584 -------------------------------------- - - \param p_lut Pointer to decoder LUTs - \param llr Pointer to input LLRs - \param p_procBuf Pointer the processing buffers - \param Z Lifting size - \param BG Base graph -*/ -static inline void nrLDPC_llr2llrProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z, uint8_t BG) -{ - uint32_t i; - const uint8_t numBn2CnG1 = p_lut->numBnInBnGroups[0]; - uint32_t startColParity = (BG ==1 ) ? (NR_LDPC_START_COL_PARITY_BG1) : (NR_LDPC_START_COL_PARITY_BG2); - - uint32_t colG1 = startColParity*Z; - - const uint16_t* lut_llr2llrProcBufAddr = p_lut->llr2llrProcBufAddr; - const uint8_t* lut_llr2llrProcBufBnPos = p_lut->llr2llrProcBufBnPos; - - uint32_t idxBn; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - // Copy LLRs connected to 1 CN - if (numBn2CnG1 > 0) - { - memcpy1(&llrProcBuf[0], &llr[colG1], numBn2CnG1*Z); - } - - // First 2 columns might be set to zero directly if it's true they always belong to the groups with highest number of connected CNs... - for (i=0; icircShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint8_t (*lut_posBnInCnProcBuf_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->posBnInCnProcBuf[0]; - const uint8_t (*lut_posBnInCnProcBuf_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->posBnInCnProcBuf[1]; - const uint8_t (*lut_posBnInCnProcBuf_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->posBnInCnProcBuf[2]; - const uint8_t (*lut_posBnInCnProcBuf_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->posBnInCnProcBuf[3]; - const uint8_t (*lut_posBnInCnProcBuf_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->posBnInCnProcBuf[4]; - const uint8_t (*lut_posBnInCnProcBuf_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->posBnInCnProcBuf[5]; - const uint8_t (*lut_posBnInCnProcBuf_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->posBnInCnProcBuf[6]; - const uint8_t (*lut_posBnInCnProcBuf_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->posBnInCnProcBuf[7]; - const uint8_t (*lut_posBnInCnProcBuf_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->posBnInCnProcBuf[8]; - - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - uint32_t i; - uint32_t j; - - uint32_t idxBn = 0; - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - -// #pragma omp simd -// #pragma omp parallel for schedule(dynamic) - - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - - idxBn = lut_posBnInCnProcBuf_CNG3[j][0]*Z; - - nrLDPC_circ_memcpy1(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - - for (j=0; j<4; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - - for (i=0; i | - BN Groups |22|23|10| 5| 5|14| 7|13| 6| 8| 9|16| 9|12|1|1|...|1| - - - CN Processing Buffer (CNGs) | 3| 4| 5| 6| 8|10| - Number of CN per CNG (R15) | 6|20| 9| 3| 2| 2| - 0 ^ ^\ \ - 3*6*384=6912 _________| || \_____________ - (3*6+4*20+5*9)*384=54912____|| \ - Bit | 1| 2| 3| 4| 5| 6| - 3*Z CNs>| |< - ^ - 54912 + 3*384______| - - \param p_lut Pointer to decoder LUTs - \param llr Pointer to input LLRs - \param p_procBuf Pointer to the processing buffers - \param Z Lifting size -*/ -static inline void nrLDPC_llr2CnProcBuf_BG2(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint8_t (*lut_posBnInCnProcBuf_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->posBnInCnProcBuf[0]; - const uint8_t (*lut_posBnInCnProcBuf_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->posBnInCnProcBuf[1]; - const uint8_t (*lut_posBnInCnProcBuf_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->posBnInCnProcBuf[2]; - const uint8_t (*lut_posBnInCnProcBuf_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->posBnInCnProcBuf[3]; - const uint8_t (*lut_posBnInCnProcBuf_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->posBnInCnProcBuf[4]; - const uint8_t (*lut_posBnInCnProcBuf_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->posBnInCnProcBuf[5]; - - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - uint32_t i; - uint32_t j; - - uint32_t idxBn = 0; - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0]; - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - - int8_t* p_cnProcBufRes; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - const uint32_t (*lut_startAddrBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint32_t(*)[lut_numCnInCnGroups[6]]) p_lut->startAddrBnProcBuf[6]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7]; - const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - const uint8_t (*lut_bnPosBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint8_t(*)[lut_numCnInCnGroups[6]]) p_lut->bnPosBnProcBuf[6]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint8_t(*)[lut_numCnInCnGroups[7]]) p_lut->bnPosBnProcBuf[7]; - const uint8_t (*lut_bnPosBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint8_t(*)[lut_numCnInCnGroups[8]]) p_lut->bnPosBnProcBuf[8]; - - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - - int8_t* p_cnProcBufRes; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - nrLDPC_inv_circ_memcpy1(&bnProcBuf[lut_startAddrBnProcBuf_CNG3[j][0]],p_cnProcBufRes,Z,lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - - for (j=0; j<4; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0]; - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // For CN groups 3 to 6 no need to send the last BN back since it's single edge - // and BN processing does not change the value already in the CN proc buf - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<2; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - const uint32_t (*lut_startAddrBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint32_t(*)[lut_numCnInCnGroups[6]]) p_lut->startAddrBnProcBuf[6]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7]; - const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - const uint8_t (*lut_bnPosBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint8_t(*)[lut_numCnInCnGroups[6]]) p_lut->bnPosBnProcBuf[6]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint8_t(*)[lut_numCnInCnGroups[7]]) p_lut->bnPosBnProcBuf[7]; - const uint8_t (*lut_bnPosBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint8_t(*)[lut_numCnInCnGroups[8]]) p_lut->bnPosBnProcBuf[8]; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // For CN groups 3 to 19 no need to send the last BN back since it's single edge - // and BN processing does not change the value already in the CN proc buf - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; -// #pragma omp simd - for (j=0;j<2; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - nrLDPC_circ_memcpy1(p_cnProcBuf, &bnProcBufRes[lut_startAddrBnProcBuf_CNG3[j][0]], Z, lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - // #pragma omp simd - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - // #pragma omp simd - for (i=0; inumBnInBnGroups[0]; - uint32_t startColParity = (BG ==1 ) ? (NR_LDPC_START_COL_PARITY_BG1) : (NR_LDPC_START_COL_PARITY_BG2); - - uint32_t colG1 = startColParity*Z; - - const uint16_t* lut_llr2llrProcBufAddr = p_lut->llr2llrProcBufAddr; - const uint8_t* lut_llr2llrProcBufBnPos = p_lut->llr2llrProcBufBnPos; - - int8_t* llrRes = p_procBuf->llrRes; - int8_t* p_llrOut = &llrOut[0]; - uint32_t idxBn; - - // Copy LLRs connected to 1 CN - if (numBn2CnG1 > 0) - { - memcpy1(&llrOut[colG1], llrRes, numBn2CnG1*Z); - } - - for (i=0; i - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_MPASS__H__ -#define __NR_LDPC_MPASS__H__ - -#include -#include "nrLDPCdecoder_defs.h" -//#include -/** - \brief Circular memcpy - |<- rem->|<- circular shift ->| - (src) str2 = |--------xxxxxxxxxxxxxxxxxxxxx| - \_______________ - \ - (dst) str1 = |xxxxxxxxxxxxxxxxxxxxx---------| - \param str1 Pointer to the start of the destination buffer - \param str2 Pointer to the source buffer - \param Z Lifting size - \param cshift Circular shift -*/ -static inline void *nrLDPC_inv_circ_memcpy(int8_t *str1, const int8_t *str2, uint16_t Z, uint16_t cshift) -{ - uint16_t rem = Z - cshift; - memcpy(str1+cshift, str2 , rem); - memcpy(str1 , str2+rem, cshift); - - return(str1); -} - -/** - \brief Inverse circular memcpy - |<- circular shift ->|<- rem->| - (src) str2 = |xxxxxxxxxxxxxxxxxxxx\--------| - \ - (dst) str1 = |--------xxxxxxxxxxxxxxxxxxxxx| - \param str1 Pointer to the start of the destination buffer - \param str2 Pointer to the source buffer - \param Z Lifting size - \param cshift Circular shift -*/ -static inline void *nrLDPC_circ_memcpy(int8_t *str1, const int8_t *str2, uint16_t Z, uint16_t cshift) -{ - uint16_t rem = Z - cshift; - memcpy(str1 , str2+cshift, rem); - memcpy(str1+rem , str2 , cshift); - - return(str1); -} - -/** - \brief Copies the input LLRs to their corresponding place in the LLR processing buffer. - Example: BG2 - | 0| 0| LLRs --> | - BN Groups |22|23|10| 5| 5|14| 7|13| 6| 8| 9|16| 9|12|1|1|...|1| - ^---------------------------------------/---- / - _________________________/ | / - / ____________________________|___/ - / / \ - LLR Proc Buffer (BNG) | 1| 5| 6| 7| 8| 9|10|12|13|14|16|22|23| - Number BN in BNG(R15) |38| 2| 1| 1| 1| 2| 1| 1| 1| 1| 1| 1| 1| - Idx: 0 ^ ^ ^ - 38*384=14592 _____| ... | | - 50*384=19200 ----------------------------------- | - 51*384=19584 -------------------------------------- - - \param p_lut Pointer to decoder LUTs - \param llr Pointer to input LLRs - \param p_procBuf Pointer the processing buffers - \param Z Lifting size - \param BG Base graph -*/ -static inline void nrLDPC_llr2llrProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z, uint8_t BG) -{ - uint32_t i; - const uint8_t numBn2CnG1 = p_lut->numBnInBnGroups[0]; - uint32_t startColParity = (BG ==1 ) ? (NR_LDPC_START_COL_PARITY_BG1) : (NR_LDPC_START_COL_PARITY_BG2); - - uint32_t colG1 = startColParity*Z; - - const uint16_t* lut_llr2llrProcBufAddr = p_lut->llr2llrProcBufAddr; - const uint8_t* lut_llr2llrProcBufBnPos = p_lut->llr2llrProcBufBnPos; - - uint32_t idxBn; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - // Copy LLRs connected to 1 CN - if (numBn2CnG1 > 0) - { - memcpy(&llrProcBuf[0], &llr[colG1], numBn2CnG1*Z); - } - - // First 2 columns might be set to zero directly if it's true they always belong to the groups with highest number of connected CNs... - for (i=0; icircShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint8_t (*lut_posBnInCnProcBuf_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->posBnInCnProcBuf[0]; - const uint8_t (*lut_posBnInCnProcBuf_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->posBnInCnProcBuf[1]; - const uint8_t (*lut_posBnInCnProcBuf_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->posBnInCnProcBuf[2]; - const uint8_t (*lut_posBnInCnProcBuf_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->posBnInCnProcBuf[3]; - const uint8_t (*lut_posBnInCnProcBuf_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->posBnInCnProcBuf[4]; - const uint8_t (*lut_posBnInCnProcBuf_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->posBnInCnProcBuf[5]; - const uint8_t (*lut_posBnInCnProcBuf_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->posBnInCnProcBuf[6]; - const uint8_t (*lut_posBnInCnProcBuf_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->posBnInCnProcBuf[7]; - const uint8_t (*lut_posBnInCnProcBuf_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->posBnInCnProcBuf[8]; - - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - uint32_t i; - uint32_t j; - - uint32_t idxBn = 0; - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - -// #pragma omp simd -// #pragma omp parallel for schedule(dynamic) - - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - - idxBn = lut_posBnInCnProcBuf_CNG3[j][0]*Z; - - nrLDPC_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - - for (j=0; j<4; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - - for (i=0; i | - BN Groups |22|23|10| 5| 5|14| 7|13| 6| 8| 9|16| 9|12|1|1|...|1| - - - CN Processing Buffer (CNGs) | 3| 4| 5| 6| 8|10| - Number of CN per CNG (R15) | 6|20| 9| 3| 2| 2| - 0 ^ ^\ \ - 3*6*384=6912 _________| || \_____________ - (3*6+4*20+5*9)*384=54912____|| \ - Bit | 1| 2| 3| 4| 5| 6| - 3*Z CNs>| |< - ^ - 54912 + 3*384______| - - \param p_lut Pointer to decoder LUTs - \param llr Pointer to input LLRs - \param p_procBuf Pointer to the processing buffers - \param Z Lifting size -*/ -static inline void nrLDPC_llr2CnProcBuf_BG2(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint8_t (*lut_posBnInCnProcBuf_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->posBnInCnProcBuf[0]; - const uint8_t (*lut_posBnInCnProcBuf_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->posBnInCnProcBuf[1]; - const uint8_t (*lut_posBnInCnProcBuf_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->posBnInCnProcBuf[2]; - const uint8_t (*lut_posBnInCnProcBuf_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->posBnInCnProcBuf[3]; - const uint8_t (*lut_posBnInCnProcBuf_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->posBnInCnProcBuf[4]; - const uint8_t (*lut_posBnInCnProcBuf_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->posBnInCnProcBuf[5]; - - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - uint32_t i; - uint32_t j; - - uint32_t idxBn = 0; - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0]; - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - - int8_t* p_cnProcBufRes; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - const uint32_t (*lut_startAddrBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint32_t(*)[lut_numCnInCnGroups[6]]) p_lut->startAddrBnProcBuf[6]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7]; - const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - const uint8_t (*lut_bnPosBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint8_t(*)[lut_numCnInCnGroups[6]]) p_lut->bnPosBnProcBuf[6]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint8_t(*)[lut_numCnInCnGroups[7]]) p_lut->bnPosBnProcBuf[7]; - const uint8_t (*lut_bnPosBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint8_t(*)[lut_numCnInCnGroups[8]]) p_lut->bnPosBnProcBuf[8]; - - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - - int8_t* p_cnProcBufRes; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - nrLDPC_inv_circ_memcpy(&bnProcBuf[lut_startAddrBnProcBuf_CNG3[j][0]],p_cnProcBufRes,Z,lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - - for (j=0; j<4; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0]; - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // For CN groups 3 to 6 no need to send the last BN back since it's single edge - // and BN processing does not change the value already in the CN proc buf - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<2; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - const uint32_t (*lut_startAddrBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint32_t(*)[lut_numCnInCnGroups[6]]) p_lut->startAddrBnProcBuf[6]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7]; - const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - const uint8_t (*lut_bnPosBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint8_t(*)[lut_numCnInCnGroups[6]]) p_lut->bnPosBnProcBuf[6]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint8_t(*)[lut_numCnInCnGroups[7]]) p_lut->bnPosBnProcBuf[7]; - const uint8_t (*lut_bnPosBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint8_t(*)[lut_numCnInCnGroups[8]]) p_lut->bnPosBnProcBuf[8]; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // For CN groups 3 to 19 no need to send the last BN back since it's single edge - // and BN processing does not change the value already in the CN proc buf - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - // #pragma omp simd - for (j=0;j<2; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - nrLDPC_circ_memcpy(p_cnProcBuf, &bnProcBufRes[lut_startAddrBnProcBuf_CNG3[j][0]], Z, lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - // #pragma omp simd - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - // #pragma omp simd - for (i=0; inumBnInBnGroups[0]; - uint32_t startColParity = (BG ==1 ) ? (NR_LDPC_START_COL_PARITY_BG1) : (NR_LDPC_START_COL_PARITY_BG2); - - uint32_t colG1 = startColParity*Z; - - const uint16_t* lut_llr2llrProcBufAddr = p_lut->llr2llrProcBufAddr; - const uint8_t* lut_llr2llrProcBufBnPos = p_lut->llr2llrProcBufBnPos; - - int8_t* llrRes = p_procBuf->llrRes; - int8_t* p_llrOut = &llrOut[0]; - uint32_t idxBn; - - // Copy LLRs connected to 1 CN - if (numBn2CnG1 > 0) - { - memcpy(&llrOut[colG1], llrRes, numBn2CnG1*Z); - } - - for (i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - fprintf(fd,"void nrLDPC_bnProcPc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} -/* - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; -*/ - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - // uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - fprintf(fd," __m256i ymm0, ymm1, ymmRes0, ymmRes1; \n"); - - - fprintf(fd," __m128i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m128i* p_llrProcBuf;\n"); - fprintf(fd," __m256i* p_llrProcBuf256; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - - - - - - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 1 CNs \n"); - - // if (lut_numBnInBnGroups[1] > 0) - // { - // If elements in group move to next address -// idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrProcBuf256 = (__m256i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - - //for (i=0,j=0;i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - - // Loop over CNs - for (k=1; k<2; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 3 CNs - - -fprintf(fd, "// Process group with 3 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // ymm0 = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 4 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 5 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<6; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 7 CNs - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 8 CNs - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<8; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 10 CNs - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<10; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<11; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 12 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<12; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with 13 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<13; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 14 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<14; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 15 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<15; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 16 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<16; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<17; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<18; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 19 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<19; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 20 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<20; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<21; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 22 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<22; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with <23 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<23; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<24; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 25 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<25; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 26 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<26; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<27; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<28; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<29; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<30; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c deleted file mode 100644 index 68783ae0da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c +++ /dev/null @@ -1,1773 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - //fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z,ratestr[R]); - - fprintf(fd,"void nrLDPC_bnProcPc_BG2_Z%d_R%s_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z,ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - //BG1 - if (R==0) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; - } - else if (R==1) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; - } - else if (R==2) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; - } - - - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - // uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - fprintf(fd," __m256i ymm0, ymm1, ymmRes0, ymmRes1; \n"); - - - fprintf(fd," __m128i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m128i* p_llrProcBuf;\n"); - fprintf(fd," __m256i* p_llrProcBuf256; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - - - - - - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 1 CNs \n"); - - // if (lut_numBnInBnGroups[1] > 0) - // { - // If elements in group move to next address -// idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrProcBuf256 = (__m256i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - - //for (i=0,j=0;i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - - // Loop over CNs - for (k=1; k<2; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 3 CNs - - -fprintf(fd, "// Process group with 3 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // ymm0 = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 4 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 5 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<6; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 7 CNs - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 8 CNs - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<8; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 10 CNs - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<10; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<11; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 12 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<12; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with 13 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<13; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 14 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<14; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 15 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<15; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 16 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<16; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<17; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<18; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 19 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<19; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 20 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<20; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<21; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 22 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<22; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with <23 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<23; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<24; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 25 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<25; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 26 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<26; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<27; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<28; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<29; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<30; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c deleted file mode 100644 index 0fffb241af..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c +++ /dev/null @@ -1,1235 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - - - fprintf(fd," __m256i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - fprintf(fd," __m256i* p_res; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<2; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<3; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<4; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<5; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<6; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<7; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<8; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<9; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<10; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<11; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 12 CNs \n"); - - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<12; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 13 CNs \n"); - - - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<1; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 14 CNs \n"); - - - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<14; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 15 CNs \n"); - - - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<15; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 16 CNs \n"); - - - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<16; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<17; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<18; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 19 CNs \n"); - - - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<19; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 20 CNs \n"); - - - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<20; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<21; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 22 CNs \n"); - - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<22; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with <23 CNs \n"); - - - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<23; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<24; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 25 CNs \n"); - - - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<25; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 26 CNs \n"); - - - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<26; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<27; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<28; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<29; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<30; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 deleted file mode 100644 index 7f5110072d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 +++ /dev/null @@ -1,1235 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - - - fprintf(fd," __m256i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - fprintf(fd," __m256i* p_res; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<2; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<3; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<4; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<5; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<6; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<7; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<8; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<9; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<10; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<11; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 12 CNs \n"); - - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<12; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 13 CNs \n"); - - - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<1; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 14 CNs \n"); - - - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<14; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 15 CNs \n"); - - - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<15; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 16 CNs \n"); - - - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<16; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<17; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<18; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 19 CNs \n"); - - - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<19; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 20 CNs \n"); - - - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<20; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<21; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 22 CNs \n"); - - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<22; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with <23 CNs \n"); - - - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<23; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<24; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 25 CNs \n"); - - - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<25; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 26 CNs \n"); - - - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<26; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<27; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<28; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<29; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<30; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c deleted file mode 100644 index d36aa8e21b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c +++ /dev/null @@ -1,1232 +0,0 @@ -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - fprintf(fd,"void nrLDPC_bnProc_BG2_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - - - fprintf(fd," __m256i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - fprintf(fd," __m256i* p_res; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<2; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<3; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<4; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<5; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<6; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<7; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<8; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<9; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<10; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<11; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 12 CNs \n"); - - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<12; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 13 CNs \n"); - - - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<1; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 14 CNs \n"); - - - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<14; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 15 CNs \n"); - - - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<15; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 16 CNs \n"); - - - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<16; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<17; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<18; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 19 CNs \n"); - - - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<19; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 20 CNs \n"); - - - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<20; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<21; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 22 CNs \n"); - - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<22; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 23 CNs \n"); - - - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<23; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<24; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 25 CNs \n"); - - - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<25; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 26 CNs \n"); - - - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<26; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<27; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<28; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<29; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<30; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 deleted file mode 100755 index 858e228f66..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/main.c deleted file mode 100644 index c1737098e9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/main.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include -#define NB_Z 51 -void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t,int); -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t,int); - - -int main() -{ - uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}; - - for(int i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX2(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R%s_AVX2.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - //__m256i* p_cnProcBuf; - //__m256i* p_cnProcBufRes; - - // Number of CNs in Groups - //uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - //__m256i ymm0, min, sgn; - //__m256i* p_cnProcBufResBit; - - // const __m256i* p_ones = (__m256i*) ones256_epi8; - // const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - // const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - fprintf(fd," __m256i ymm0, min, sgn,ones,maxLLR;\n"); - fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); - fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); - - fprintf(fd," uint32_t M;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 3 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG3[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); - - // Abs and sign of 32 CNs (first BN) - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]+1); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]+1); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG4[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG5[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 96 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG6[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 60 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG7[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG7[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG8[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG8[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 24 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[6] ); - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 9 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG9[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>5)+lut_idxCnProcG9[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[6]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 12 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - - - - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 10 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG10[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>5)+lut_idxCnProcG10[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[7]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 12 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 19 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG19[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>5)+lut_idxCnProcG19[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[8]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o deleted file mode 100644 index bb2aa672a6..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c deleted file mode 100644 index 6c4c603a7e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c +++ /dev/null @@ -1,429 +0,0 @@ -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" - - -void nrLDPC_cnProc_BG2_generator_AVX2(int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - -// system("mkdir -p ldpc_gen_files/avx2"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R%s_AVX2.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - // Number of CNs in Groups - //uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 byte - uint32_t bitOffsetInGroup; - - // Offsets are in units of bitOffsetInGroup (1*384/32) - // const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - - fprintf(fd," __m256i ymm0, min, sgn,ones,maxLLR;\n"); - fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); - fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); - fprintf(fd," uint32_t M;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG3[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); - - // Abs and sign of 32 CNs (first BN) - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]+1); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]+1); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - - // Offset is 20*384/32 = 240 - const uint16_t lut_idxCnProcG4[4][3] = {{240,480,720}, {0,480,720}, {0,240,720}, {0,240,480}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<4; j++) - { - - // Loop over CNs - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG4[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - - // Offset is 9*384/32 = 108 - 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}}; - - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] ); - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG5[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 3*384/32 = 36 - const uint16_t lut_idxCnProcG6[6][5] = {{36,72,108,144,180}, {0,72,108,144,180}, - {0,36,108,144,180}, {0,36,72,144,180}, - {0,36,72,108,180}, {0,36,72,108,144}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - - // Loop over CNs - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG6[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - 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}}; - - - - - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<8; j++) - { - - // Loop over CNs - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG8[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG8[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - - const uint8_t lut_idxCnProcG10[10][9] = {{24,48,72,96,120,144,168,192,216}, {0,48,72,96,120,144,168,192,216}, - {0,24,72,96,120,144,168,192,216}, {0,24,48,96,120,144,168,192,216}, - {0,24,48,72,120,144,168,192,216}, {0,24,48,72,96,144,168,192,216}, - {0,24,48,72,96,120,168,192,216}, {0,24,48,72,96,120,144,192,216}, - {0,24,48,72,96,120,144,168,216}, {0,24,48,72,96,120,144,168,192}}; - - - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<10; j++) - { - - // Loop over CNs - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG10[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG10[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG2 - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o deleted file mode 100644 index 95abb7b348..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 deleted file mode 100755 index 29fc76d279..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/main.c deleted file mode 100644 index 3086439a9e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/main.c +++ /dev/null @@ -1,20 +0,0 @@ - -#include -#include -#define NB_R 3 -void nrLDPC_cnProc_BG1_generator_AVX2(int); -void nrLDPC_cnProc_BG2_generator_AVX2(int); -int main() -{ - int R[NB_R]={0,1,2}; - for(int i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - // fprintf(fd,"#include \n"); -// fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // for (k=1; k<2; k++) - //{ - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - // } - - // Store result - // min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 9 BNs - - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<9; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - - - - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c deleted file mode 100644 index 9b8b36ba30..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c +++ /dev/null @@ -1,409 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG2_generator_AVX512(int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - //fprintf(fd,"#include \n"); -// fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - //fprintf(fd,"static inline void nrLDPC_cnProc_BG2_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes, uint16_t Z) {\n",Z,ratestr[R]); - fprintf(fd,"void nrLDPC_cnProc_BG2_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - // Number of CNs in Groups - //uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - fprintf(fd," uint32_t M;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<3; j++) - { - - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG3[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][0]/2)+1); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][1]/2)+1); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 20*384/32 = 240 - const uint16_t lut_idxCnProcG4[4][3] = {{240,480,720}, {0,480,720}, {0,240,720}, {0,240,480}}; - - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG4[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 9*384/32 = 108 - 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}}; - - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG5[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 3*384/32 = 36 - const uint16_t lut_idxCnProcG6[6][5] = {{36,72,108,144,180}, {0,72,108,144,180}, - {0,36,108,144,180}, {0,36,72,144,180}, - {0,36,72,108,180}, {0,36,72,108,144}}; - - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG6[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - 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}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG8[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - - const uint8_t lut_idxCnProcG10[10][9] = {{24,48,72,96,120,144,168,192,216}, {0,48,72,96,120,144,168,192,216}, - {0,24,72,96,120,144,168,192,216}, {0,24,48,96,120,144,168,192,216}, - {0,24,48,72,120,144,168,192,216}, {0,24,48,72,96,144,168,192,216}, - {0,24,48,72,96,120,168,192,216}, {0,24,48,72,96,120,144,192,216}, - {0,24,48,72,96,120,144,168,216}, {0,24,48,72,96,120,144,168,192}}; - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<10; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG10[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG2 - - - - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o deleted file mode 100644 index 7e811fdb42..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 deleted file mode 100755 index 6eae25907c..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/main.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/main.c deleted file mode 100644 index d3a3d16cd5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/main.c +++ /dev/null @@ -1,20 +0,0 @@ - -#include -#include -#define NB_R 3 -void nrLDPC_cnProc_BG1_generator_AVX512(int); -void nrLDPC_cnProc_BG2_generator_AVX512(int); -int main() -{ - int R[NB_R]={0,1,2}; - for(int i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (int i=0;i<%d;i+=2) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][0]/2)+1); - - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][1]/2)+1); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - // sgn = _mm512_sign_epi816(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn, zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c deleted file mode 100644 index 6f9036db18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c +++ /dev/null @@ -1,557 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn, zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today deleted file mode 100644 index a9dab4bf99..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today +++ /dev/null @@ -1,596 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - // Loop over every BN - - - - - for (j=0; j<3; j++) - { - - - // Set of results pointer to correct BN address - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][1]/2)); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native deleted file mode 100644 index f8de0dc0b7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native +++ /dev/null @@ -1,596 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - fprintf(fd," const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8;\n"); - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - // Loop over every BN - - - - - for (j=0; j<3; j++) - { - - - // Set of results pointer to correct BN address - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG3[j][1]/2); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",lut_idxCnProcG7[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG9[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG19[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled deleted file mode 100644 index 96002878a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled +++ /dev/null @@ -1,590 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - // Loop over every BN - - - - -fprintf(fd," for (int j=0;j<3;j++) {\n"); - - - // Set of results pointer to correct BN address - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][1]/2)); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - //for (j=0; j<4; j++) - // { - - fprintf(fd," for (int j=0;j<4;j++) {\n"); - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<5;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<6;j++) {\n"); - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<7;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<8;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - - // Set pointers to start of group - // Loop over every BN - - fprintf(fd," for (int j=0;j<9;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - fprintf(fd," for (int j=0;j<10;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<11;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c deleted file mode 100644 index 5c9e0ba2c8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z104_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c deleted file mode 100644 index 17386fca34..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z10_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c deleted file mode 100644 index 72f269a3fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z112_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c deleted file mode 100644 index 59f30be553..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z11_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index 400c04c430..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z120_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 6496593bd3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z128_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c deleted file mode 100644 index 0614cf505b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z12_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c deleted file mode 100644 index 785d554559..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z13_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index d91cb1b44e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z144_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index 07ba538e90..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z14_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index 78e3f8dc35..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z15_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index cc2d9fafd7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z160_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index 29ffb5058b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z16_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index e44d7cac94..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z176_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index 765ffaf0b1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z18_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index 436effce12..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z192_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index a043cee84d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z208_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 0acb046870..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z20_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 941f05c829..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z224_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index 3bedc1da39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z22_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 3e1fb14b16..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z240_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index a1a9e7c746..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z24_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 95b6662869..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z256_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index d67252e70d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z26_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 88b1453acd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z288_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index dab5d50a75..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z28_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c deleted file mode 100644 index b5b4329183..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 82b7429182..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z30_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index c1243fe104..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z320_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 6fbf2f7060..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z32_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index 54bf723732..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z352_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index 449662b84f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z36_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index c4fa11327f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z384_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index cd0ecff86e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z3_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index b0a1d96998..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z40_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 094471b418..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z44_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index b5384c2cd2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z48_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 1c664a4a07..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z4_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index ebea97e7a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z52_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index c24d31dc62..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z56_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index 3d0523df04..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z5_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index b69c8bfb2c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z60_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index 1c51ee482f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z64_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index bbe6ddcb3e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z6_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index f74cc89ad7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z72_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index 94f64d1fad..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z7_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index 931abd13c8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z80_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 4b88d79461..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z88_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 83032f55a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z8_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index 649308b2a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z96_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index e16be52cea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z9_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c deleted file mode 100644 index 6de8a73cfe..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z104_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c deleted file mode 100644 index da7eecd7c9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z10_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index 3613096240..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z112_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index ce583e8a49..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z11_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 9567913d4c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z120_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 3dcd56e4b2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z128_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index a1e7eef92d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z12_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index c604b9c9fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z13_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 3a6d5fad9b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z144_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 0a68dcc192..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z14_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index 5e1b4e5247..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z15_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index 301752c898..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z160_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 2ff4596dec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z16_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 25d44d65dd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z176_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index d035375329..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z18_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index fe808f0262..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z192_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index b80ad2550c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z208_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index bea168af3c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z20_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 6a897f6a58..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z224_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index 1686f075cd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z22_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index ff3f02c22c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z240_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index 3a824bf742..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z24_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index 1d251bfd7e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z256_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index 9c01cb69a0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z26_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index c48b6023d6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z288_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 4b02344ea4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z28_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c deleted file mode 100644 index 81694205f4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z2_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 1ca19efbea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z30_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index cb56abe439..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z320_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index d03e2e943e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z32_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index 6be4e10dd8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z352_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index 3e447f3a1a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z36_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index 2ac44f6c53..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z384_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c deleted file mode 100644 index 3b645790d4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z3_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index a9eb5dbb00..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z40_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index a6613ef66c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z44_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index d2a7c80bb0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z48_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c deleted file mode 100644 index ae4f4d922f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z4_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 3efa774165..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z52_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index f61d8ea7d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z56_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c deleted file mode 100644 index 6528758122..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z5_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index d7a3be2173..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z60_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 58457add44..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z64_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index f9c2093489..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z6_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index 9d14029acc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z72_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index 188b6a94dd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z7_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index ac2c167b9a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z80_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 4d5ec0740c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z88_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index f4b84e4509..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z8_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 83a4a54c13..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z96_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index ed5464778a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z9_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c deleted file mode 100644 index 94b217187d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z104_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<137;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c deleted file mode 100644 index 160bce3117..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z10_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<14;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c deleted file mode 100644 index 0e753bfab3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z112_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<147;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c deleted file mode 100644 index 3a16eaa82f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z11_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<15;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index 673af9a9d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z120_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<158;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 9029ec4945..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<168;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c deleted file mode 100644 index eb63f40810..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z12_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<16;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c deleted file mode 100644 index 03b80c28e3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z13_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<18;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index 1e0e1bb9b4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z144_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<189;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index f8d5ba2422..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z14_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<19;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index c3bf9cd8c4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z15_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<20;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index 54aa60410d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z160_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<210;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index dbd57a29a2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z16_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<21;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index b33f7eff95..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z176_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<231;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<17;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<17;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index bfacf24f9e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z18_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<24;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index cb5e28d03b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<252;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index 26206a90ef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z208_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<273;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 47a80af761..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z20_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<27;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 429e77bb46..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z224_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<294;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<21;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<21;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index 5114d701ea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z22_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<29;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 0075be8dec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z240_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<315;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<23;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<23;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index 2a10721f55..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z24_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<32;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 32f7cc2f18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<336;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index ec50dbc7c6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z26_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<35;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 31c6264a07..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z288_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<378;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<27;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<27;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index 5f261e18df..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z28_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<37;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c deleted file mode 100644 index e77a0c287f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<3;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 9c40d68946..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z30_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<40;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index ad6d124bae..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z320_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<420;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 57401cbf41..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<42;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index 901bc03cd9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z352_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<462;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<33;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<33;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index 4799b8efbf..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z36_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<48;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index bccdf09c1e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<504;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index a458247cf1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z3_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<4;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index 79d4f4ae71..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z40_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<53;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 5e91ecb0c1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z44_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<58;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index 7e7af0c1ce..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<63;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 06e7bc8467..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z4_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<6;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index 6954acb650..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z52_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<69;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index dd4d169cb2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z56_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<74;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index c3943c0003..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z5_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<7;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index cd4c7ff1b9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z60_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<79;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index b9c661f6ca..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<84;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index c223a8b5b1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z6_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<8;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index 0711e1b370..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z72_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<95;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index 85384d8d39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z7_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<10;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index e7e4c7b6f4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z80_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<105;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 4d694f1874..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z88_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<116;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 548b9ab4aa..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z8_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<11;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index 8db0776e95..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<126;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index 44b8a15b39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z9_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<12;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c deleted file mode 100644 index f0ed3c3cd1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z104_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<124;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c deleted file mode 100644 index 06529a76d5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z10_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<12;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index d32d9f5a5a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z112_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<133;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index f4abd64e20..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z11_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<14;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 192f387978..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z120_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<143;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 7c87845b5b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<152;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index b640cc9b50..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z12_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<15;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index fc400c6368..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z13_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<16;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 8f10c6f9a6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z144_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<171;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 3f6be2d8b3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z14_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<17;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index 18433a0bb9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z15_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<18;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index a707e979a3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z160_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<190;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 2db176ef99..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z16_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<19;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 0a4986e855..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z176_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<209;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index 73ec5b7694..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z18_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<22;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index 57c3a14331..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<228;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index df3810a159..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z208_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<247;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index ccabb48171..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z20_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<24;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 3863cc0b78..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z224_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<266;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index e63c5fd552..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z22_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<27;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index 6502335168..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z240_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<285;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index bf727cb7da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z24_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<29;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index 21e3b405ee..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<304;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index aada1582fb..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z26_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<31;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index dbd644f48b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z288_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<342;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 465742e608..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z28_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<34;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c deleted file mode 100644 index e93cdfcf11..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z2_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<3;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 8d060b7c79..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z30_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<36;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index 92268f3d53..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z320_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<380;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index bfc4c0b52b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<38;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index 2c6cc7b6b0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z352_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<418;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index ed4a0100a9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z36_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<43;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index a5c0f02b5b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<456;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c deleted file mode 100644 index 43e8bcd7de..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z3_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<4;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index 24438b13cd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z40_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<48;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index 0f324af960..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z44_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<53;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index 9e88e7b0ed..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<57;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c deleted file mode 100644 index 12597e8f2f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z4_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<5;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 6b6566f36e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z52_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<62;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index b1cce64577..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z56_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<67;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c deleted file mode 100644 index 5991558809..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z5_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<6;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index 9c83e7d431..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z60_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<72;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 9dd53e1642..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<76;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index b7e769a154..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z6_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<8;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index 749b21d603..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z72_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<86;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index ba4a638274..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z7_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<9;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index b60d9c6ad4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z80_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<95;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 607d88744c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z88_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<105;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index 0aa77ce254..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z8_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<10;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 4239544706..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<114;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index 5c085b51c2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z9_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<11;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c deleted file mode 100644 index aa171558fd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c +++ /dev/null @@ -1,2346 +0,0 @@ -#include -#include -static inline void nrLDPC_cnProc_BG1_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R89_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R89_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (8*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (8*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R15_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (6*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R15_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (6*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -static inline void nrLDPC_cnProc_BG1_R13_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { - uint32_t M, i; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i* p_cnProcBufResBit; - __m512i* p_cnProcBufRes; - __m512i* p_cnProcBuf; - __m512i zmm0, min, sgn,zeros,maxLLR, ones; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - ones = _mm512_set1_epi8((char)1); -//Process group with 3 BNs - M = (1*Z + 63)>>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[0]; - p_cnProcBuf = (__m512i*) &cnProcBuf[0]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[1152]; - p_cnProcBuf = (__m512i*) &cnProcBuf[1152]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[8832]; - p_cnProcBuf = (__m512i*) &cnProcBuf[8832]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[43392]; - p_cnProcBuf = (__m512i*) &cnProcBuf[43392]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[61824]; - p_cnProcBuf = (__m512i*) &cnProcBuf[61824]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[75264]; - p_cnProcBuf = (__m512i*) &cnProcBuf[75264]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[81408]; - p_cnProcBuf = (__m512i*) &cnProcBuf[81408]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[88320]; - p_cnProcBuf = (__m512i*) &cnProcBuf[88320]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[92160]; - p_cnProcBuf = (__m512i*) &cnProcBuf[92160]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -static inline void nrLDPC_cnProc_BG1_R23_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { - uint32_t M, i; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i* p_cnProcBufResBit; - __m512i* p_cnProcBufRes; - __m512i* p_cnProcBuf; - __m512i zmm0, min, sgn,zeros,maxLLR, ones; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - ones = _mm512_set1_epi8((char)1); -//Process group with 3 BNs - M = (1*Z + 63)>>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[0]; - p_cnProcBuf = (__m512i*) &cnProcBuf[0]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[61824]; - p_cnProcBuf = (__m512i*) &cnProcBuf[61824]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[75264]; - p_cnProcBuf = (__m512i*) &cnProcBuf[75264]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[81408]; - p_cnProcBuf = (__m512i*) &cnProcBuf[81408]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[88320]; - p_cnProcBuf = (__m512i*) &cnProcBuf[88320]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[92160]; - p_cnProcBuf = (__m512i*) &cnProcBuf[92160]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -static inline void nrLDPC_cnProc_BG1_R89_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { - uint32_t M, i; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i* p_cnProcBufResBit; - __m512i* p_cnProcBufRes; - __m512i* p_cnProcBuf; - __m512i zmm0, min, sgn,zeros,maxLLR, ones; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - ones = _mm512_set1_epi8((char)1); -//Process group with 3 BNs - M = (1*Z + 63)>>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[0]; - p_cnProcBuf = (__m512i*) &cnProcBuf[0]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[92160]; - p_cnProcBuf = (__m512i*) &cnProcBuf[92160]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;icnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); -//Process group with 3 BNs -//Process group with 4 BNs - M = (8*Z + 63)>>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;icnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); -//Process group with 3 BNs - M = (20*Z + 63)>>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;icnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); -//Process group with 3 BNs -//Process group with 4 BNs - M = (1*Z + 63)>>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_DEBUG__H__ -#define __NR_LDPC_DEBUG__H__ - -#include - -/** - Enum with possible LDPC data buffers - */ -typedef enum nrLDPC_buffers { - nrLDPC_buffers_LLR_PROC, /**< LLR processing buffer */ - nrLDPC_buffers_CN_PROC, /**< CN processing buffer */ - nrLDPC_buffers_CN_PROC_RES, /**< CN processing results buffer */ - nrLDPC_buffers_BN_PROC, /**< BN processing buffer */ - nrLDPC_buffers_BN_PROC_RES, /**< BN processing results buffer */ - nrLDPC_buffers_LLR_RES /**< LLR results buffer */ -} e_nrLDPC_buffers; - -/** - \brief Writes N data samples to a file - \param fileName Name of the file - \param p_data Pointer to the data - \param N Number of values to write -*/ -static inline void nrLDPC_writeFile(const char* fileName, int8_t* p_data, const uint32_t N) -{ - FILE *f; - uint32_t i; - - f = fopen(fileName, "a"); - - // Newline indicating new data - fprintf(f, "\n"); - for (i=0; i < N; i++) - { - fprintf(f, "%d, ", p_data[i]); - } - - fclose(f); -} - -/** - \brief Creates empty new file - \param fileName Name of the file -*/ -static inline void nrLDPC_initFile(const char* fileName) -{ - FILE *f; - - f = fopen(fileName, "w"); - - fprintf(f, " "); - - fclose(f); -} - -/** - \brief Writes data of predefined buffers to file - \param buffer Enum of buffer name to write -*/ -static inline void nrLDPC_debug_writeBuffer2File(e_nrLDPC_buffers buffer, t_nrLDPC_procBuf* p_procBuf) -{ - switch (buffer) - { - case nrLDPC_buffers_LLR_PROC: - { - nrLDPC_writeFile("llrProcBuf.txt", p_procBuf->llrProcBuf, NR_LDPC_MAX_NUM_LLR); - break; - } - case nrLDPC_buffers_CN_PROC: - { - nrLDPC_writeFile("cnProcBuf.txt", p_procBuf->cnProcBuf, NR_LDPC_SIZE_CN_PROC_BUF); - break; - } - case nrLDPC_buffers_CN_PROC_RES: - { - nrLDPC_writeFile("cnProcBufRes.txt", p_procBuf->cnProcBufRes, NR_LDPC_SIZE_CN_PROC_BUF); - break; - } - case nrLDPC_buffers_BN_PROC: - { - nrLDPC_writeFile("bnProcBuf.txt", p_procBuf->bnProcBuf, NR_LDPC_SIZE_BN_PROC_BUF); - break; - } - case nrLDPC_buffers_BN_PROC_RES: - { - nrLDPC_writeFile("bnProcBufRes.txt", p_procBuf->bnProcBufRes, NR_LDPC_SIZE_BN_PROC_BUF); - break; - } - case nrLDPC_buffers_LLR_RES: - { - nrLDPC_writeFile("llrRes.txt", p_procBuf->llrRes, NR_LDPC_MAX_NUM_LLR); - break; - } - } -} - -/** - \brief Initializes file for writing a buffer - \param buffer Enum of buffer name to write -*/ -static inline void nrLDPC_debug_initBuffer2File(e_nrLDPC_buffers buffer) -{ - switch (buffer) - { - case nrLDPC_buffers_LLR_PROC: - { - nrLDPC_initFile("llrProcBuf.txt"); - break; - } - case nrLDPC_buffers_CN_PROC: - { - nrLDPC_initFile("cnProcBuf.txt"); - break; - } - case nrLDPC_buffers_CN_PROC_RES: - { - nrLDPC_initFile("cnProcBufRes.txt"); - break; - } - case nrLDPC_buffers_BN_PROC: - { - nrLDPC_initFile("bnProcBuf.txt"); - break; - } - case nrLDPC_buffers_BN_PROC_RES: - { - nrLDPC_initFile("bnProcBufRes.txt"); - break; - } - case nrLDPC_buffers_LLR_RES: - { - nrLDPC_initFile("llrRes.txt"); - break; - } - } -} - -/** - \brief Prints 256 data type - \param in Input to print -*/ -static inline void nrLDPC_debug_print256i_epi8(__m256i* in) -{ - uint32_t i; - - for (i=0; i<32; i++) - { - mexPrintf("%d ", ((int8_t*)&in)[i]); - } -} - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_types.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_types.h deleted file mode 100644 index b802e07104..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_types.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_types.h - * \brief Defines all types for the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_TYPES__H__ -#define __NR_LDPC_TYPES__H__ -#include "../../TOOLS/time_meas.h" -#include "nrLDPCdecoder_defs.h" -// ============================================================================== -// TYPES - -/** - Structure containing the pointers to the LUTs. - */ -typedef struct nrLDPC_lut { - const uint32_t* startAddrCnGroups; /**< Start addresses for CN groups in CN processing buffer */ - const uint8_t* numCnInCnGroups; /**< Number of CNs in every CN group */ - const uint8_t* numBnInBnGroups; /**< Number of CNs in every BN group */ - const uint32_t* startAddrBnGroups; /**< Start addresses for BN groups in BN processing buffer */ - const uint16_t* startAddrBnGroupsLlr; /**< Start addresses for BN groups in LLR processing buffer */ - const uint16_t** circShift[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT for circular shift values for all CN groups and Zs */ - const uint32_t** startAddrBnProcBuf[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT of start addresses of CN groups in BN proc buffer */ - const uint8_t** bnPosBnProcBuf[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT of BN positions in BG for CN groups */ - const uint16_t* llr2llrProcBufAddr; /**< LUT for transferring input LLRs to LLR processing buffer */ - const uint8_t* llr2llrProcBufBnPos; /**< LUT BN position in BG */ - const uint8_t** posBnInCnProcBuf[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT for llr2cnProcBuf */ -} t_nrLDPC_lut; - -/** - Enum with possible LDPC output formats. - */ -typedef enum nrLDPC_outMode { - nrLDPC_outMode_BIT, /**< 32 bits per uint32_t output */ - nrLDPC_outMode_BITINT8, /**< 1 bit per int8_t output */ - nrLDPC_outMode_LLRINT8 /**< Single LLR value per int8_t output */ -} e_nrLDPC_outMode; - -/** - Structure containing LDPC decoder parameters. - */ -typedef struct nrLDPC_dec_params { - uint8_t BG; /**< Base graph */ - uint16_t Z; /**< Lifting size */ - uint8_t R; /**< Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ - uint8_t numMaxIter; /**< Maximum number of iterations */ - e_nrLDPC_outMode outMode; /**< Output format */ -} t_nrLDPC_dec_params; - -/** - Structure containing LDPC decoder processing time statistics. - */ -typedef struct nrLDPC_time_stats { - time_stats_t llr2llrProcBuf; /**< Statistics for function llr2llrProcBuf */ - time_stats_t llr2CnProcBuf; /**< Statistics for function llr2CnProcBuf */ - time_stats_t cnProc; /**< Statistics for function cnProc */ - time_stats_t cnProcPc; /**< Statistics for function cnProcPc */ - time_stats_t bnProcPc; /**< Statistics for function bnProcPc */ - time_stats_t bnProc; /**< Statistics for function bnProc */ - time_stats_t cn2bnProcBuf; /**< Statistics for function cn2bnProcBuf */ - time_stats_t bn2cnProcBuf; /**< Statistics for function bn2cnProcBuf */ - time_stats_t llrRes2llrOut; /**< Statistics for function llrRes2llrOut */ - time_stats_t llr2bit; /**< Statistics for function llr2bit */ - time_stats_t total; /**< Statistics for total processing time */ -} t_nrLDPC_time_stats; - -/** - Structure containing the processing buffers - */ -typedef struct nrLDPC_procBuf { - int8_t* cnProcBuf; /**< CN processing buffer */ - int8_t* cnProcBufRes; /**< Buffer for CN processing results */ - int8_t* bnProcBuf; /**< BN processing buffer */ - int8_t* bnProcBufRes; /**< Buffer for BN processing results */ - int8_t* llrRes; /**< Buffer for LLR results */ - int8_t* llrProcBuf; /**< LLR processing buffer */ -} t_nrLDPC_procBuf; - - - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPCdecoder_defs.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPCdecoder_defs.h deleted file mode 100644 index 083fe39bff..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPCdecoder_defs.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPCdecoder_defs.h - * \brief Defines all constants and buffers for the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_DEFS__H__ -#define __NR_LDPC_DEFS__H__ - -// ============================================================================== -// DEFINES - -/** Maximum lifting size */ -#define NR_LDPC_ZMAX 384 - -/** Number of columns in BG1 */ -#define NR_LDPC_NCOL_BG1 68 -/** Number of rows in BG1 */ -#define NR_LDPC_NROW_BG1 46 -/** Number of edges/entries in BG1 */ -#define NR_LDPC_NUM_EDGE_BG1 316 -/** Number of check node (CN) groups in BG1 - A CN group is defined by its number of connected bit nodes. */ -#define NR_LDPC_NUM_CN_GROUPS_BG1 9 -/** First column in BG1 that is connected to only a single CN */ -#define NR_LDPC_START_COL_PARITY_BG1 26 - -/** Number of columns in BG1 for rate 1/3 = 22/(68-2) */ -#define NR_LDPC_NCOL_BG1_R13 NR_LDPC_NCOL_BG1 -/** Number of columns in BG1 for rate 2/3 = 22/(35-2) */ -#define NR_LDPC_NCOL_BG1_R23 35 -/** Number of columns in BG1 for rate 8/9 ~ 22/(27-2) */ -#define NR_LDPC_NCOL_BG1_R89 27 - -/** Number of bit node (BN) groups in BG1 for rate 1/3 - A BN group is defined by its number of connected CNs. */ -#define NR_LDPC_NUM_BN_GROUPS_BG1_R13 30 -/** Number of bit node (BN) groups in BG1 for rate 2/3 */ -#define NR_LDPC_NUM_BN_GROUPS_BG1_R23 8 -/** Number of bit node (BN) groups in BG1 for rate 8/9 */ -#define NR_LDPC_NUM_BN_GROUPS_BG1_R89 5 - -/** Number of columns in BG2 */ -#define NR_LDPC_NCOL_BG2 52 -/** Number of rows in BG2 */ -#define NR_LDPC_NROW_BG2 42 -/** Number of edges/entries in BG2 */ -#define NR_LDPC_NUM_EDGE_BG2 197 -/** Number of check node (CN) groups in BG2 - A CN group is defined by its number of connected bit nodes. */ -#define NR_LDPC_NUM_CN_GROUPS_BG2 6 -/** First column in BG2 that is connected to only a single CN */ -#define NR_LDPC_START_COL_PARITY_BG2 14 - -/** Number of columns in BG2 for rate 1/5 = 10/(52-2) */ -#define NR_LDPC_NCOL_BG2_R15 NR_LDPC_NCOL_BG2 -/** Number of columns in BG2 for rate 1/3 = 10/(32-2) */ -#define NR_LDPC_NCOL_BG2_R13 32 -/** Number of columns in BG2 for rate 2/3 = 10/(17-2) */ -#define NR_LDPC_NCOL_BG2_R23 17 - -/** Number of bit node (BN) groups in BG2 for rate 1/5 - A BN group is defined by its number of connected CNs. */ -#define NR_LDPC_NUM_BN_GROUPS_BG2_R15 23 -/** Number of bit node (BN) groups in BG2 for rate 1/3 */ -#define NR_LDPC_NUM_BN_GROUPS_BG2_R13 10 -/** Number of bit node (BN) groups in BG2 for rate 2/3 */ -#define NR_LDPC_NUM_BN_GROUPS_BG2_R23 6 - -/** Worst case size of the CN processing buffer */ -#define NR_LDPC_SIZE_CN_PROC_BUF NR_LDPC_NUM_EDGE_BG1*NR_LDPC_ZMAX -/** Worst case size of the BN processing buffer */ -#define NR_LDPC_SIZE_BN_PROC_BUF NR_LDPC_NUM_EDGE_BG1*NR_LDPC_ZMAX - -/** Maximum number of possible input LLR = NR_LDPC_NCOL_BG1*NR_LDPC_ZMAX */ -#define NR_LDPC_MAX_NUM_LLR 27000 - -// ============================================================================== -// GLOBAL CONSTANT VARIABLES - -/** Start addresses for the cnProcBuf for each CN group in BG1*/ -static const uint32_t lut_startAddrCnGroups_BG1[NR_LDPC_NUM_CN_GROUPS_BG1] = {0, 1152, 8832, 43392, 61824, 75264, 81408, 88320, 92160}; -/** Start addresses for the cnProcBuf for each CN group in BG2*/ -static const uint32_t lut_startAddrCnGroups_BG2[NR_LDPC_NUM_CN_GROUPS_BG2] = {0, 6912, 37632, 54912, 61824, 67968}; - -/** Number of BNs of CN group for BG1. - E.g. 10 means that there is a CN group where every CN is connected to 10 BNs */ -static const uint8_t lut_numBnInCnGroups_BG1_R13[NR_LDPC_NUM_CN_GROUPS_BG1] = {3, 4, 5, 6, 7, 8, 9, 10, 19}; -/** Number of rows/CNs in every CN group for rate = 1/3 BG1, e.g. 5 rows of CNs connected to 4 BNs */ -static const uint8_t lut_numCnInCnGroups_BG1_R13[NR_LDPC_NUM_CN_GROUPS_BG1] = {1, 5, 18, 8, 5, 2, 2, 1, 4}; -/** Number of rows/CNs in every CN group for rate = 2/3 BG1, e.g. 3 rows of CNs connected to 7 BNs */ -static const uint8_t lut_numCnInCnGroups_BG1_R23[NR_LDPC_NUM_CN_GROUPS_BG1] = {1, 0, 0, 0, 3, 2, 2, 1, 4}; -/** Number of rows/CNs in every CN group for rate = 8/9 BG1, e.g. 4 rows of CNs connected to 19 BNs */ -static const uint8_t lut_numCnInCnGroups_BG1_R89[NR_LDPC_NUM_CN_GROUPS_BG1] = {1, 0, 0, 0, 0, 0, 0, 0, 4}; - -/** Number of connected BNs for every column in BG1 rate = 1/3, e.g. in first column all BNs are connected to 30 CNs */ -static const uint8_t lut_numEdgesPerBn_BG1_R13[NR_LDPC_START_COL_PARITY_BG1] = {30, 28, 7, 11, 9, 4, 8, 12, 8, 7, 12, 10, 12, 11, 10, 7, 10, 10, 13, 7, 8, 11, 12, 5, 6, 6}; -/** Number of connected BNs for every column in BG1 rate = 2/3, e.g. in first column all BNs are connected to 12 CNs */ -static const uint8_t lut_numEdgesPerBn_BG1_R23[NR_LDPC_START_COL_PARITY_BG1] = {12, 11, 4, 5, 5, 3, 4, 5, 5, 3, 6, 6, 6, 6, 5, 3, 6, 5, 6, 4, 5, 6, 6, 3, 3, 2}; -/** Number of connected BNs for every column in BG1 rate = 8/9, e.g. in first column all BNs are connected to 5 CNs */ -static const uint8_t lut_numEdgesPerBn_BG1_R89[NR_LDPC_START_COL_PARITY_BG1] = {5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2}; - -/** Number of BNs of CN group for BG2. - E.g. 3 means that there is a CN group where every CN is connected to 3 BNs */ -static const uint8_t lut_numBnInCnGroups_BG2_R15[NR_LDPC_NUM_CN_GROUPS_BG2] = {3, 4, 5, 6, 8, 10}; -/** Number of rows/CNs in every CN group for rate = 1/5 BG2, e.g. 6 rows of CNs connected to 3 BNs */ -static const uint8_t lut_numCnInCnGroups_BG2_R15[NR_LDPC_NUM_CN_GROUPS_BG2] = {6, 20, 9, 3, 2, 2}; -/** Number of rows/CNs in every CN group for rate = 1/3 BG2, e.g. 8 rows of CNs connected to 4 BNs */ -static const uint8_t lut_numCnInCnGroups_BG2_R13[NR_LDPC_NUM_CN_GROUPS_BG2] = {0, 8, 7, 3, 2, 2}; -/** Number of rows/CNs in every CN group for rate = 2/3 BG2, e.g. 1 row of CNs connected to 4 BNs */ -static const uint8_t lut_numCnInCnGroups_BG2_R23[NR_LDPC_NUM_CN_GROUPS_BG2] = {0, 1, 0, 2, 2, 2}; - -/** Number of connected BNs for every column in BG2 rate = 1/5, e.g. in first column all BNs are connected to 22 CNs */ -static const uint8_t lut_numEdgesPerBn_BG2_R15[NR_LDPC_START_COL_PARITY_BG2] = {22, 23, 10, 5, 5, 14, 7, 13, 6, 8, 9, 16, 9, 12}; -/** Number of connected BNs for every column in BG2 rate = 1/3, e.g. in first column all BNs are connected to 14 CNs */ -static const uint8_t lut_numEdgesPerBn_BG2_R13[NR_LDPC_START_COL_PARITY_BG2] = {14, 16, 2, 4, 4, 6, 6, 8, 6, 6, 6, 13, 5, 7}; -/** Number of connected BNs for every column in BG2 rate = 2/3, e.g. in first column all BNs are connected to 6 CNs */ -static const uint8_t lut_numEdgesPerBn_BG2_R23[NR_LDPC_START_COL_PARITY_BG2] = { 6, 5, 2, 3, 3, 4, 3, 4, 3, 4, 3, 5, 2, 2}; - -// Number of groups for bit node processing -/** Number of connected CNs for every column/BN in BG1 for rate = 1/3, Worst case is BG1 with up to 30 CNs connected to one BN - E.g. 42 parity BNs connected to single CN */ - // BG1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 -static const uint8_t lut_numBnInBnGroups_BG1_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {42, 0, 0, 1, 1, 2, 4, 3, 1, 4, 3, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}; -/** Number of connected CNs for every column/BN in BG1 for rate = 2/3 */ -static const uint8_t lut_numBnInBnGroups_BG1_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = { 9, 1, 5, 3, 7, 8, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -/** Number of connected CNs for every column/BN in BG1 for rate = 8/9 */ -static const uint8_t lut_numBnInBnGroups_BG1_R89[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = { 1, 3,21, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - -/** Number of connected CNs for every column/BN in BG2 for rate = 1/5, Worst case is BG1 with up to 30 CNs connected to one BN - E.g. 38 parity BNs connected to single CN */ - // BG2: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 -static const uint8_t lut_numBnInBnGroups_BG2_R15[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {38, 0, 0, 0, 2, 1, 1, 1, 2, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}; -/** Number of connected CNs for every column/BN in BG2 for rate = 1/3 */ -static const uint8_t lut_numBnInBnGroups_BG2_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {18, 1, 0, 2, 1, 5, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -/** Number of connected CNs for every column/BN in BG2 for rate = 2/3 */ -static const uint8_t lut_numBnInBnGroups_BG2_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = { 3, 3, 5, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - -// Start addresses for the bnProcBuf for each BN group -// BG1 -/** Start address for every BN group within the BN processing buffer for BG1 rate = 1/3 */ -static const uint32_t lut_startAddrBnGroups_BG1_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {0, 16128, 17664, 19584, 24192, 34944, 44160, 47616, 62976, 75648, 94080, 99072, 109824}; -/** Start address for every BN group within the BN processing buffer for BG1 rate = 2/3 */ -static const uint32_t lut_startAddrBnGroups_BG1_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R23] = {0, 3456, 4224, 9984, 14592, 28032, 46464, 50688}; -/** Start address for every BN group within the BN processing buffer for BG1 rate = 8/9 */ -static const uint32_t lut_startAddrBnGroups_BG1_R89[NR_LDPC_NUM_BN_GROUPS_BG1_R89] = {0, 384, 2688, 26880, 28416}; - -/** Start address for every BN group within the LLR processing buffer for BG1 rate = 1/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG1_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {0, 16128, 16512, 16896, 17664, 19200, 20352, 20736, 22272, 23424, 24960, 25344, 25728}; -/** Start address for every BN group within the LLR processing buffer for BG1 rate = 2/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG1_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R23] = {0, 3456, 3840, 5760, 6912, 9600, 12672, 13056}; -/** Start address for every BN group within the LLR processing buffer for BG1 rate = 8/9 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG1_R89[NR_LDPC_NUM_BN_GROUPS_BG1_R89] = {0, 384, 1536, 9600, 9984}; - -// BG2 -/** Start address for every BN group within the BN processing buffer for BG2 rate = 1/5 */ -static const uint32_t lut_startAddrBnGroups_BG2_R15[NR_LDPC_NUM_BN_GROUPS_BG2_R15] = {0, 14592, 18432, 20736, 23424, 26496, 33408, 37248, 41856, 46848, 52224, 58368, 66816}; -/** Start address for every BN group within the BN processing buffer for BG2 rate = 1/3 */ -static const uint32_t lut_startAddrBnGroups_BG2_R13[NR_LDPC_NUM_BN_GROUPS_BG2_R13] = {0, 6912, 7680, 10752, 12672, 24192, 26880, 29952, 34944, 40320}; -/** Start address for every BN group within the BN processing buffer for BG2 rate = 2/3 */ -static const uint32_t lut_startAddrBnGroups_BG2_R23[NR_LDPC_NUM_BN_GROUPS_BG2_R23] = {0, 1152, 3456, 9216, 13824, 17664}; - -/** Start address for every BN group within the LLR processing buffer for BG2 rate = 1/5 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG2_R15[NR_LDPC_NUM_BN_GROUPS_BG2_R15] = {0, 14592, 15360, 15744, 16128, 16512, 17280, 17664, 18048, 18432, 18816, 19200, 19584}; -/** Start address for every BN group within the LLR processing buffer for BG2 rate = 1/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG2_R13[NR_LDPC_NUM_BN_GROUPS_BG2_R13] = {0, 6912, 7296, 8064, 8448, 10368, 10752, 11136, 11520, 11904}; -/** Start address for every BN group within the LLR processing buffer for BG2 rate = 2/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG2_R23[NR_LDPC_NUM_BN_GROUPS_BG2_R23] = {0, 1152, 2304, 4224, 5376, 6144}; - -/** Vector of 32 '1' in int8 for application with AVX2 */ -static const int8_t ones256_epi8[32] __attribute__ ((aligned(32))) = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; -/** Vector of 32 '0' in int8 for application with AVX2 */ -static const int8_t zeros256_epi8[32] __attribute__ ((aligned(32))) = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; -/** Vector of 32 '127' in int8 for application with AVX2 */ -static const int8_t maxLLR256_epi8[32] __attribute__ ((aligned(32))) = {127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127}; - -/** Vector of 64 '1' in int8 for application with AVX512 */ -static const int8_t ones512_epi8[64] __attribute__ ((aligned(64))) = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; -/** Vector of 64 '0' in int8 for application with AVX512 */ -static const int8_t zeros512_epi8[64] __attribute__ ((aligned(64))) = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; -/** Vector of 64 '127' in int8 for application with AVX512 */ -static const int8_t maxLLR512_epi8[64] __attribute__ ((aligned(64))) = {127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127}; - - - - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/complete/nrLDPC_bnProc.h.1 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/complete/nrLDPC_bnProc.h.1 deleted file mode 100644 index 5cf22728a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/complete/nrLDPC_bnProc.h.1 +++ /dev/null @@ -1,5533 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_bnProc.h - * \brief Defines the functions for bit node processing - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#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. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size -*/ -#ifdef __AVX512BW__ - -static inline void nrLDPC_bnProcPc_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numBnInBnGroups = p_lut->numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m256i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m256i* p_llrProcBuf; - __m512i* p_llrProcBuf256; - __m512i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m512i zmm0, zmm1, zmmRes0, zmmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 63)>>6; - - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m512i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m512i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m512i* p_llrRes; - __m512i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i>5; - uint32_t Mr = numLLR&31; - - const __m256i* p_zeros = (__m256i*) zeros256_epi8; - const __m256i* p_ones = (__m256i*) ones256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - p_out8 = (int8_t*) p_out; - - for (i=0; i>5; - uint32_t Mr = numLLR&31; - const __m256i* p_shuffle = (__m256i*) constShuffle_256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - - for (i=0; i - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif -// nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - // nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - // nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif -// nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/nrLDPC_bnProc.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/nrLDPC_bnProc.h deleted file mode 100644 index 5cf22728a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/nrLDPC_bnProc.h +++ /dev/null @@ -1,5533 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_bnProc.h - * \brief Defines the functions for bit node processing - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#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. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size -*/ -#ifdef __AVX512BW__ - -static inline void nrLDPC_bnProcPc_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numBnInBnGroups = p_lut->numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m256i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m256i* p_llrProcBuf; - __m512i* p_llrProcBuf256; - __m512i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m512i zmm0, zmm1, zmmRes0, zmmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 63)>>6; - - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m512i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m512i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m512i* p_llrRes; - __m512i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i>5; - uint32_t Mr = numLLR&31; - - const __m256i* p_zeros = (__m256i*) zeros256_epi8; - const __m256i* p_ones = (__m256i*) ones256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - p_out8 = (int8_t*) p_out; - - for (i=0; i>5; - uint32_t Mr = numLLR&31; - const __m256i* p_shuffle = (__m256i*) constShuffle_256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - - for (i=0; i - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_CNPROC__H__ -#define __NR_LDPC_CNPROC__H__ - -/** - \brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer. - \param p_lut Pointer to decoder LUTs - \param p_procBuf Pointer to processing buffers - \param Z Lifting size -*/ -static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - __m256i *pj0 = &p_cnProcBuf[lut_idxCnProcG3[j][0]]; - __m256i *pj1 = &p_cnProcBuf[lut_idxCnProcG3[j][1]]; - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m512i* p_cnProcBuf; - __m512i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m512i zmm0, min, sgn, zeros,maxLLR; - - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - __m512i* p_cnProcBufResBit; - - - const __m512i* p_ones = (__m512i*) ones512_epi8; - const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8; - - - - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 7 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 9 BNs - - if (lut_numCnInCnGroups[6] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[6]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[7] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[7]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 19 BNs - - if (lut_numCnInCnGroups[8] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[8]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -/** - \brief Performs parity check for BG2 on the CN processing buffer. Stops as soon as error is detected. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size - \return 32-bit parity check indicator -*/ -static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -#endif - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/nrLDPC_decoder.c deleted file mode 100644 index 8932b3375c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/nrLDPC_decoder.c +++ /dev/null @@ -1,541 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/version_deroulé/nrLDPC_cnProc.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/version_deroulé/nrLDPC_cnProc.h deleted file mode 100644 index 02a9f8554c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/version_deroulé/nrLDPC_cnProc.h +++ /dev/null @@ -1,2444 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_cnProc.h - * \brief Defines the functions for check node processing - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_CNPROC__H__ -#define __NR_LDPC_CNPROC__H__ - -/** - \brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer. - \param p_lut Pointer to decoder LUTs - \param p_procBuf Pointer to processing buffers - \param Z Lifting size -*/ -static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - __m256i *pj0 = &p_cnProcBuf[lut_idxCnProcG3[j][0]]; - __m256i *pj1 = &p_cnProcBuf[lut_idxCnProcG3[j][1]]; - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m512i* p_cnProcBuf; - __m512i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m512i zmm0, min, sgn, zeros,maxLLR; - - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - __m512i* p_cnProcBufResBit; - - - const __m512i* p_ones = (__m512i*) ones512_epi8; - const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8; - - - - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 7 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 9 BNs - - if (lut_numCnInCnGroups[6] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[6]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[7] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[7]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 19 BNs - - if (lut_numCnInCnGroups[8] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[8]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -/** - \brief Performs parity check for BG2 on the CN processing buffer. Stops as soon as error is detected. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size - \return 32-bit parity check indicator -*/ -static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -#endif - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/version_deroulé/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/version_deroulé/nrLDPC_decoder.c deleted file mode 100644 index 051ab11232..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/version_deroulé/nrLDPC_decoder.c +++ /dev/null @@ -1,3711 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines thenrLDPC decoder -*/ - -#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" - - - - /*----------------------------------------------------------------------/ - / included files for -->AVX512 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------- -#ifdef __AVX512BW__ -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z104_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z2_13_AVX512.c" - -//BG2------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z104_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z3_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z2_15_AVX512.c" - -#else - - /*----------------------------------------------------------------------/ - / included files for -->AVX2 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z384_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z352_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z320_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z288_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z256_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z240_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z224_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z208_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z192_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z176_13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z160_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z144_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z128_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z120_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z112_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z104_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z96_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z88_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z80_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z72_13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z64_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z60_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z56_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z52_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z48_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z44_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z40_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z36_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z32_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z30_13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z28_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z26_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z24_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z22_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z20_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z18_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z16_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z15_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z14_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z13_13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z12_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z11_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z10_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z9_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z8_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z7_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z6_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z5_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z4_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z3_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z2_13_AVX2.c" - -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z384_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z352_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z320_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z288_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z256_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z240_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z224_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z208_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z192_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z176_15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z160_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z144_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z128_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z120_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z112_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z104_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z96_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z88_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z80_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z72_15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z64_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z60_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z56_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z52_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z48_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z44_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z40_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z36_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z32_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z30_15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z28_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z26_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z24_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z22_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z20_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z18_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z16_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z15_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z14_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z13_15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z12_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z11_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z10_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z9_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z8_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z7_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z6_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z5_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z4_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z3_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z2_15_AVX2.c" -#endif - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // LaunchnrLDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief PerformsnrLDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParamsnrLDPC decoder parameters - \param p_profilernrLDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - // 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 - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z13_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z12_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z11_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - } //end if - else - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z15_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z13_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z12_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z13_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z12_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z11_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - } //end if - else - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z15_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z13_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z12_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z13_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z12_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z11_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - } //end if - else - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z15_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z13_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z12_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - }//end of else - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_bnProc.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_bnProc.h deleted file mode 100644 index 9641563e9e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_bnProc.h +++ /dev/null @@ -1,2830 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_bnProc.h - * \brief Defines the functions for bit node processing - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#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. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size -*/ -static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numBnInBnGroups = p_lut->numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i>5; - uint32_t Mr = numLLR&31; - - const __m256i* p_zeros = (__m256i*) zeros256_epi8; - const __m256i* p_ones = (__m256i*) ones256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - p_out8 = (int8_t*) p_out; - - for (i=0; i>5; - uint32_t Mr = numLLR&31; - const __m256i* p_shuffle = (__m256i*) constShuffle_256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - - for (i=0; i - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_CNPROC__H__ -#define __NR_LDPC_CNPROC__H__ - -/** - \brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer. - \param p_lut Pointer to decoder LUTs - \param p_procBuf Pointer to processing buffers - \param Z Lifting size -*/ - -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) - -#ifdef __AVX512BW__ -static inline void nrLDPC_cnProc_BG2_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m512i* p_cnProcBuf; - __m512i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m512i zmm0, min, sgn, zeros; - zeros = _mm512_setzero_si512(); -// maxLLR = _mm512_set1_epi8((char)127); - __m512i* p_cnProcBufResBit; - - const __m512i* p_ones = (__m512i*) ones512_epi8; - const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - __m512i *pj0 = &p_cnProcBuf[(lut_idxCnProcG3[j][0]/2)]; - __m512i *pj1 = &p_cnProcBuf[(lut_idxCnProcG3[j][1]/2)]; - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - __m256i *pj0 = &p_cnProcBuf[lut_idxCnProcG3[j][0]]; - __m256i *pj1 = &p_cnProcBuf[lut_idxCnProcG3[j][1]]; - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m512i* p_cnProcBuf; - __m512i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m512i zmm0, min, sgn, zeros; - - zeros = _mm512_setzero_si512(); - // maxLLR = _mm512_set1_epi8((char)127); - __m512i* p_cnProcBufResBit; - - - const __m512i* p_ones = (__m512i*) ones512_epi8; - const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8; - - - - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 7 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 9 BNs - - if (lut_numCnInCnGroups[6] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[6]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[7] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[7]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 19 BNs - - if (lut_numCnInCnGroups[8] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[8]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -/** - \brief Performs parity check for BG2 on the CN processing buffer. Stops as soon as error is detected. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size - \return 32-bit parity check indicator -*/ -static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -#endif - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.c deleted file mode 100644 index 2d541b2703..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.c +++ /dev/null @@ -1,745 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines thenrLDPC decoder -*/ - -#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" - - - /*----------------------------------------------------------------------/ - / cn processing files -->AVX512 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------- -#ifdef __AVX512BW__ - -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h" - - -#else - - /*----------------------------------------------------------------------/ - / cn Processing files -->AVX2 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h" -#endif - - -//Bn Processing files - -//bnProcPc -//BG1------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c" - -//bnProc -///#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.c" -//#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.c" - - - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // LaunchnrLDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief PerformsnrLDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParamsnrLDPC decoder parameters - \param p_profilernrLDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t R = p_decParams->R; //Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - // int8_t* cnProcBuf= p_procBuf->cnProcBuf; - // int8_t* cnProcBufRes=p_procBuf->cnProcBufRes; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - -nrLDPC_bnProc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.c2 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.c2 deleted file mode 100644 index 34bfdc2fb3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.c2 +++ /dev/null @@ -1,534 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); - -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.save b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.save deleted file mode 100644 index 1a0bd672e6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.save +++ /dev/null @@ -1,902 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines thenrLDPC decoder -*/ - -#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" - - - /*----------------------------------------------------------------------/ - / cn processing files -->AVX512 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------- -#ifdef __AVX512BW__ - -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.c" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.c" - - -#else - - /*----------------------------------------------------------------------/ - / cn Processing files -->AVX2 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c" -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c" -#endif - - -//Bn Processing files - -//bnProcPc -//BG1------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c" -//BG2------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c" - -//bnProc -///#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.c" -//#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.c" - - - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // LaunchnrLDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief PerformsnrLDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParamsnrLDPC decoder parameters - \param p_profilernrLDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t R = p_decParams->R; //Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - // int8_t* cnProcBuf= p_procBuf->cnProcBuf; - // int8_t* cnProcBufRes=p_procBuf->cnProcBufRes; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - if(BG==1){ - - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - else{ - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - if(BG==1){ - - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - /* case 256: - { - nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 48: - { - nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 32: - { - nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } -*/ - } - } - else{ - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - /* case 256: - { - nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 48: - { - nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 32: - { - nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } -*/ - } - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (R) - { - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R23_AVX512(p_lut,p_procBuf, Z); - //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_R23_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 89: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_R89_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1_R89_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - } //end if - else - { - switch (R) - { - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R15_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R15_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R13_AVX512(p_lut,p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R13_AVX2(p_lut, p_procBuf, Z); - #endif - break; - } - - case 23: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_R23_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2_R23_AVX2(p_lut, p_procBuf, Z)); - #endif - break; - } - - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - - if(BG==1){ - - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - else{ - switch (Z) - { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - } - } - - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_init.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_init.h deleted file mode 100644 index ea031dc2da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_init.h +++ /dev/null @@ -1,1640 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_init.h - * \brief Defines the function to initialize the LDPC decoder and sets correct LUTs. - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_INIT__H__ -#define __NR_LDPC_INIT__H__ - -#include "nrLDPC_lut.h" -#include "nrLDPCdecoder_defs.h" - -/** - \brief Initializes the decoder and sets correct LUTs - \param p_decParams Pointer to decoder parameters - \param p_lut Pointer to decoder LUTs - \return Number of LLR values -*/ -static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lut* p_lut) -{ - uint32_t numLLR = 0; - uint8_t BG = p_decParams->BG; - uint16_t Z = p_decParams->Z; - uint8_t R = p_decParams->R; - - if (BG == 2) - { - // LUT that only depend on BG - p_lut->startAddrCnGroups = lut_startAddrCnGroups_BG2; - - p_lut->posBnInCnProcBuf[0] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG3; - p_lut->posBnInCnProcBuf[1] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG4; - p_lut->posBnInCnProcBuf[2] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG5; - p_lut->posBnInCnProcBuf[3] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG6; - p_lut->posBnInCnProcBuf[4] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG8; - p_lut->posBnInCnProcBuf[5] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG10; - p_lut->posBnInCnProcBuf[6] = NULL; - p_lut->posBnInCnProcBuf[7] = NULL; - p_lut->posBnInCnProcBuf[8] = NULL; - - // LUT that only depend on R - if (R == 15) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG4; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG5; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG8; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG10; - p_lut->startAddrBnProcBuf[6] = NULL; - p_lut->startAddrBnProcBuf[7] = NULL; - p_lut->startAddrBnProcBuf[8] = NULL; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG3; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG4; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG5; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG8; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG10; - p_lut->bnPosBnProcBuf[6] = NULL; - p_lut->bnPosBnProcBuf[7] = NULL; - p_lut->bnPosBnProcBuf[8] = NULL; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R15; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG2_R15; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; - - numLLR = NR_LDPC_NCOL_BG2_R15*Z; - } - else if (R == 13) - { - p_lut->startAddrBnProcBuf[0] = NULL; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG4; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG5; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG8; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG10; - p_lut->startAddrBnProcBuf[6] = NULL; - p_lut->startAddrBnProcBuf[7] = NULL; - p_lut->startAddrBnProcBuf[8] = NULL; - - p_lut->bnPosBnProcBuf[0] = NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG4; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG5; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG8; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG10; - p_lut->bnPosBnProcBuf[6] = NULL; - p_lut->bnPosBnProcBuf[7] = NULL; - p_lut->bnPosBnProcBuf[8] = NULL; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R13; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG2_R13; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; - - numLLR = NR_LDPC_NCOL_BG2_R13*Z; - } - else if (R == 23) - { - p_lut->startAddrBnProcBuf[0] = NULL; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG4; - p_lut->startAddrBnProcBuf[2] = NULL; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG8; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG10; - p_lut->startAddrBnProcBuf[6] = NULL; - p_lut->startAddrBnProcBuf[7] = NULL; - p_lut->startAddrBnProcBuf[8] = NULL; - - p_lut->bnPosBnProcBuf[0] = NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG4; - p_lut->bnPosBnProcBuf[2] = NULL; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG8; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG10; - p_lut->bnPosBnProcBuf[6] = NULL; - p_lut->bnPosBnProcBuf[7] = NULL; - p_lut->bnPosBnProcBuf[8] = NULL; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R23; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG2_R23; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; - - numLLR = NR_LDPC_NCOL_BG2_R23*Z; - } - - // LUT that depend on Z and R - switch (Z) - { - case 2: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z2_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z2_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z2_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z2_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z2_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z2_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 3: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z3_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z3_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z3_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z3_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z3_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z3_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 4: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z4_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z4_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z4_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z4_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z4_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z4_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 5: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z5_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z5_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z5_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z5_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z5_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z5_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 6: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z6_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z6_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z6_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z6_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z6_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z6_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 7: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z7_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z7_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z7_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z7_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z7_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z7_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 8: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z8_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z8_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z8_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z8_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z8_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z8_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 9: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z9_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z9_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z9_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z9_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z9_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z9_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 10: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z10_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z10_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z10_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z10_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z10_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z10_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 11: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z11_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z11_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z11_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z11_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z11_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z11_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 12: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z12_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z12_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z12_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z12_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z12_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z12_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 13: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z13_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z13_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z13_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z13_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z13_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z13_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 14: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z14_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z14_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z14_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z14_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z14_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z14_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 15: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z15_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z15_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z15_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z15_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z15_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z15_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 16: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z16_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z16_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z16_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z16_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z16_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z16_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 18: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z18_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z18_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z18_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z18_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z18_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z18_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 20: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z20_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z20_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z20_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z20_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z20_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z20_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 22: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z22_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z22_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z22_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z22_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z22_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z22_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 24: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z24_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z24_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z24_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z24_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z24_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z24_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 26: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z26_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z26_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z26_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z26_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z26_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z26_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 28: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z28_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z28_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z28_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z28_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z28_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z28_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 30: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z30_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z30_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z30_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z30_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z30_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z30_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 32: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z32_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z32_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z32_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z32_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z32_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z32_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 36: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z36_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z36_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z36_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z36_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z36_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z36_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 40: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z40_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z40_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z40_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z40_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z40_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z40_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 44: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z44_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z44_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z44_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z44_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z44_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z44_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 48: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z48_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z48_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z48_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z48_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z48_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z48_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 52: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z52_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z52_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z52_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z52_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z52_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z52_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 56: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z56_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z56_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z56_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z56_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z56_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z56_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 60: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z60_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z60_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z60_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z60_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z60_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z60_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 64: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z64_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z64_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z64_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z64_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z64_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z64_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 72: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z72_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z72_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z72_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z72_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z72_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z72_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 80: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z80_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z80_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z80_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z80_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z80_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z80_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 88: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z88_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z88_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z88_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z88_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z88_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z88_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 96: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z96_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z96_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z96_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z96_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z96_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z96_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 104: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z104_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z104_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z104_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z104_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z104_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z104_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 112: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z112_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z112_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z112_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z112_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z112_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z112_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 120: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z120_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z120_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z120_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z120_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z120_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z120_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 128: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z128_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z128_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z128_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z128_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z128_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z128_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 144: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z144_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z144_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z144_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z144_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z144_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z144_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 160: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z160_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z160_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z160_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z160_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z160_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z160_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 176: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z176_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z176_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z176_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z176_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z176_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z176_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 192: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z192_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z192_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z192_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z192_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z192_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z192_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 208: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z208_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z208_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z208_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z208_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z208_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z208_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 224: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z224_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z224_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z224_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z224_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z224_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z224_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 240: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z240_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z240_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z240_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z240_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z240_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z240_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 256: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z256_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z256_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z256_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z256_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z256_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z256_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 288: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z288_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z288_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z288_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z288_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z288_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z288_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 320: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z320_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z320_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z320_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z320_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z320_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z320_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 352: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z352_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z352_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z352_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z352_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z352_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z352_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 384: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z384_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z384_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z384_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z384_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z384_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z384_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - default: - { - p_lut->circShift[0] = NULL; - p_lut->circShift[1] = NULL; - p_lut->circShift[2] = NULL; - p_lut->circShift[3] = NULL; - p_lut->circShift[4] = NULL; - p_lut->circShift[5] = NULL; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - } - } - } - else - { // BG == 1 - // LUT that only depend on BG - p_lut->startAddrCnGroups = lut_startAddrCnGroups_BG1; - - p_lut->posBnInCnProcBuf[0] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG3; - p_lut->posBnInCnProcBuf[1] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG4; - p_lut->posBnInCnProcBuf[2] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG5; - p_lut->posBnInCnProcBuf[3] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG6; - p_lut->posBnInCnProcBuf[4] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG7; - p_lut->posBnInCnProcBuf[5] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG8; - p_lut->posBnInCnProcBuf[6] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG9; - p_lut->posBnInCnProcBuf[7] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG10; - p_lut->posBnInCnProcBuf[8] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG19; - - // LUT that only depend on R - if (R == 13) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG4; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG5; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG7; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG8; - p_lut->startAddrBnProcBuf[6] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG9; - p_lut->startAddrBnProcBuf[7] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG10; - p_lut->startAddrBnProcBuf[8] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG19; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG4; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG5; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG7; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG8; - p_lut->bnPosBnProcBuf[6] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG9; - p_lut->bnPosBnProcBuf[7] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG10; - p_lut->bnPosBnProcBuf[8] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG19; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG1_R13; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG1_R13; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - numLLR = NR_LDPC_NCOL_BG1_R13*Z; - } - else if (R == 23) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG7; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG8; - p_lut->startAddrBnProcBuf[6] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG9; - p_lut->startAddrBnProcBuf[7] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG10; - p_lut->startAddrBnProcBuf[8] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG19; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG7; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG8; - p_lut->bnPosBnProcBuf[6] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG9; - p_lut->bnPosBnProcBuf[7] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG10; - p_lut->bnPosBnProcBuf[8] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG19; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG1_R23; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG1_R23; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - - numLLR = NR_LDPC_NCOL_BG1_R23*Z; - } - else if (R == 89) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG1_R89_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[6] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[7] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[8] = (const uint32_t**) startAddrBnProcBuf_BG1_R89_CNG19; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[6] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[7] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[8] = (const uint8_t**) bnPosBnProcBuf_BG1_R89_CNG19; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG1_R89; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG1_R89; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - - numLLR = NR_LDPC_NCOL_BG1_R89*Z; - } - - // LUT that depend on Z and R - switch (Z) - { - case 2: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z2_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z2_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z2_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z2_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z2_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z2_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z2_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z2_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z2_CNG19; - break; - } - case 3: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z3_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z3_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z3_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z3_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z3_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z3_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z3_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z3_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z3_CNG19; - break; - } - case 4: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z4_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z4_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z4_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z4_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z4_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z4_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z4_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z4_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z4_CNG19; - break; - } - case 5: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z5_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z5_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z5_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z5_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z5_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z5_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z5_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z5_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z5_CNG19; - break; - } - case 6: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z6_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z6_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z6_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z6_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z6_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z6_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z6_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z6_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z6_CNG19; - break; - } - case 7: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z7_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z7_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z7_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z7_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z7_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z7_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z7_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z7_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z7_CNG19; - break; - } - case 8: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z8_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z8_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z8_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z8_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z8_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z8_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z8_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z8_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z8_CNG19; - break; - } - case 9: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z9_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z9_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z9_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z9_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z9_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z9_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z9_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z9_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z9_CNG19; - break; - } - case 10: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z10_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z10_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z10_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z10_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z10_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z10_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z10_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z10_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z10_CNG19; - break; - } - case 11: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z11_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z11_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z11_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z11_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z11_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z11_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z11_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z11_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z11_CNG19; - break; - } - case 12: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z12_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z12_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z12_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z12_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z12_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z12_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z12_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z12_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z12_CNG19; - break; - } - case 13: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z13_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z13_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z13_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z13_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z13_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z13_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z13_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z13_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z13_CNG19; - break; - } - case 14: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z14_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z14_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z14_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z14_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z14_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z14_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z14_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z14_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z14_CNG19; - break; - } - case 15: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z15_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z15_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z15_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z15_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z15_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z15_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z15_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z15_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z15_CNG19; - break; - } - case 16: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z16_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z16_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z16_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z16_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z16_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z16_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z16_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z16_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z16_CNG19; - break; - } - case 18: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z18_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z18_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z18_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z18_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z18_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z18_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z18_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z18_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z18_CNG19; - break; - } - case 20: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z20_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z20_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z20_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z20_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z20_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z20_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z20_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z20_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z20_CNG19; - break; - } - case 22: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z22_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z22_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z22_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z22_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z22_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z22_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z22_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z22_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z22_CNG19; - break; - } - case 24: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z24_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z24_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z24_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z24_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z24_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z24_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z24_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z24_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z24_CNG19; - break; - } - case 26: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z26_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z26_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z26_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z26_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z26_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z26_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z26_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z26_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z26_CNG19; - break; - } - case 28: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z28_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z28_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z28_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z28_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z28_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z28_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z28_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z28_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z28_CNG19; - break; - } - case 30: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z30_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z30_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z30_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z30_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z30_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z30_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z30_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z30_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z30_CNG19; - break; - } - case 32: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z32_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z32_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z32_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z32_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z32_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z32_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z32_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z32_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z32_CNG19; - break; - } - case 36: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z36_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z36_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z36_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z36_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z36_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z36_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z36_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z36_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z36_CNG19; - break; - } - case 40: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z40_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z40_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z40_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z40_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z40_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z40_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z40_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z40_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z40_CNG19; - break; - } - case 44: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z44_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z44_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z44_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z44_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z44_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z44_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z44_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z44_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z44_CNG19; - break; - } - case 48: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z48_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z48_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z48_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z48_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z48_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z48_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z48_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z48_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z48_CNG19; - break; - } - case 52: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z52_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z52_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z52_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z52_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z52_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z52_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z52_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z52_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z52_CNG19; - break; - } - case 56: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z56_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z56_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z56_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z56_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z56_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z56_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z56_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z56_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z56_CNG19; - break; - } - case 60: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z60_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z60_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z60_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z60_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z60_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z60_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z60_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z60_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z60_CNG19; - break; - } - case 64: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z64_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z64_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z64_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z64_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z64_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z64_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z64_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z64_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z64_CNG19; - break; - } - case 72: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z72_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z72_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z72_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z72_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z72_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z72_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z72_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z72_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z72_CNG19; - break; - } - case 80: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z80_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z80_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z80_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z80_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z80_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z80_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z80_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z80_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z80_CNG19; - break; - } - case 88: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z88_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z88_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z88_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z88_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z88_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z88_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z88_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z88_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z88_CNG19; - break; - } - case 96: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z96_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z96_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z96_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z96_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z96_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z96_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z96_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z96_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z96_CNG19; - break; - } - case 104: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z104_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z104_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z104_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z104_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z104_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z104_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z104_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z104_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z104_CNG19; - break; - } - case 112: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z112_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z112_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z112_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z112_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z112_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z112_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z112_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z112_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z112_CNG19; - break; - } - case 120: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z120_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z120_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z120_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z120_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z120_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z120_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z120_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z120_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z120_CNG19; - break; - } - case 128: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z128_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z128_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z128_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z128_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z128_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z128_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z128_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z128_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z128_CNG19; - break; - } - case 144: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z144_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z144_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z144_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z144_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z144_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z144_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z144_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z144_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z144_CNG19; - break; - } - case 160: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z160_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z160_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z160_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z160_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z160_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z160_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z160_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z160_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z160_CNG19; - break; - } - case 176: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z176_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z176_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z176_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z176_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z176_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z176_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z176_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z176_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z176_CNG19; - break; - } - case 192: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z192_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z192_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z192_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z192_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z192_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z192_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z192_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z192_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z192_CNG19; - break; - } - case 208: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z208_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z208_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z208_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z208_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z208_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z208_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z208_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z208_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z208_CNG19; - break; - } - case 224: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z224_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z224_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z224_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z224_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z224_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z224_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z224_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z224_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z224_CNG19; - break; - } - case 240: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z240_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z240_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z240_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z240_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z240_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z240_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z240_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z240_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z240_CNG19; - break; - } - case 256: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z256_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z256_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z256_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z256_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z256_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z256_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z256_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z256_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z256_CNG19; - break; - } - case 288: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z288_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z288_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z288_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z288_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z288_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z288_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z288_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z288_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z288_CNG19; - break; - } - case 320: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z320_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z320_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z320_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z320_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z320_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z320_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z320_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z320_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z320_CNG19; - break; - } - case 352: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z352_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z352_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z352_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z352_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z352_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z352_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z352_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z352_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z352_CNG19; - break; - } - case 384: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z384_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z384_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z384_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z384_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z384_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z384_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z384_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z384_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z384_CNG19; - break; - } - default: - { - p_lut->circShift[0] = NULL; - p_lut->circShift[1] = NULL; - p_lut->circShift[2] = NULL; - p_lut->circShift[3] = NULL; - p_lut->circShift[4] = NULL; - p_lut->circShift[5] = NULL; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - } - } - } - - return numLLR; -} - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_init_mem.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_init_mem.h deleted file mode 100644 index acd40d5d2d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_init_mem.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_init_mem.h - * \brief Defines the function to initialize the LDPC decoder and sets correct LUTs. - * \author Sebastian Wagner (TCL Communications) Email: - * \date 07-12-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_INIT_MEM__H__ -#define __NR_LDPC_INIT_MEM__H__ - -#include -#include "nrLDPC_types.h" - -#ifndef malloc32_clear -/** - \brief Allocates 32 byte aligned memory and initializes to zero - \param size Input size in bytes - \return Pointer to memory -*/ -static inline void* malloc32_clear(size_t size) -{ - void* ptr = (void*) memalign(64, size+64); - memset(ptr, 0, size); - return ptr; -} -#endif - -/** - \brief Allocates and initializes the internal decoder processing buffers - \param p_decParams Pointer to decoder parameters - \param p_lut Pointer to decoder LUTs - \return Number of LLR values -*/ -static inline t_nrLDPC_procBuf* nrLDPC_init_mem(void) -{ - t_nrLDPC_procBuf* p_procBuf = (t_nrLDPC_procBuf*) malloc32_clear(sizeof(t_nrLDPC_procBuf)); - - if (p_procBuf) - { - p_procBuf->cnProcBuf = (int8_t*) malloc32_clear(NR_LDPC_SIZE_CN_PROC_BUF*sizeof(int8_t)); - p_procBuf->cnProcBufRes = (int8_t*) malloc32_clear(NR_LDPC_SIZE_CN_PROC_BUF*sizeof(int8_t)); - p_procBuf->bnProcBuf = (int8_t*) malloc32_clear(NR_LDPC_SIZE_BN_PROC_BUF*sizeof(int8_t)); - p_procBuf->bnProcBufRes = (int8_t*) malloc32_clear(NR_LDPC_SIZE_BN_PROC_BUF*sizeof(int8_t)); - p_procBuf->llrRes = (int8_t*) malloc32_clear(NR_LDPC_MAX_NUM_LLR *sizeof(int8_t)); - p_procBuf->llrProcBuf = (int8_t*) malloc32_clear(NR_LDPC_MAX_NUM_LLR *sizeof(int8_t)); - } - - return(p_procBuf); -} - -static inline void nrLDPC_free_mem(t_nrLDPC_procBuf* p_procBuf) -{ - free(p_procBuf->cnProcBuf); - free(p_procBuf->cnProcBufRes); - free(p_procBuf->bnProcBuf); - free(p_procBuf->bnProcBufRes); - free(p_procBuf->llrRes); - free(p_procBuf->llrProcBuf); - - free(p_procBuf); -} -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_lut.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_lut.h deleted file mode 100644 index df80e11d18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_lut.h +++ /dev/null @@ -1,1004 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_lut.h - * \brief Header file defining all look-up tables - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_LUT__H__ -#define __NR_LDPC_LUT__H__ - -// Circular shifts of base graph -// There are 8 sets of circular shifts depending on Z -// However, each shift is modulo Z -// BG1 -// Group of CNs with 3 BNs (CNG3) -// e.g. first and second value correspond to row 4 col 0 and 1 in the BG table (modulo Z) -static const uint16_t circShift_BG1_Z2_CNG3[3][1] = {{1},{0},{0}}; -static const uint16_t circShift_BG1_Z3_CNG3[3][1] = {{2},{1},{0}}; -static const uint16_t circShift_BG1_Z5_CNG3[3][1] = {{3},{0},{0}}; -static const uint16_t circShift_BG1_Z7_CNG3[3][1] = {{2},{3},{0}}; -static const uint16_t circShift_BG1_Z9_CNG3[3][1] = {{3},{1},{0}}; -static const uint16_t circShift_BG1_Z11_CNG3[3][1] = {{9},{3},{0}}; -static const uint16_t circShift_BG1_Z13_CNG3[3][1] = {{11},{9},{0}}; -static const uint16_t circShift_BG1_Z15_CNG3[3][1] = {{4},{1},{0}}; -static const uint16_t circShift_BG1_Z4_CNG3[3][1] = {{1},{2},{0}}; -static const uint16_t circShift_BG1_Z6_CNG3[3][1] = {{2},{1},{0}}; -static const uint16_t circShift_BG1_Z10_CNG3[3][1] = {{3},{5},{0}}; -static const uint16_t circShift_BG1_Z14_CNG3[3][1] = {{2},{10},{0}}; -static const uint16_t circShift_BG1_Z18_CNG3[3][1] = {{12},{1},{0}}; -static const uint16_t circShift_BG1_Z22_CNG3[3][1] = {{20},{14},{0}}; -static const uint16_t circShift_BG1_Z26_CNG3[3][1] = {{24},{22},{0}}; -static const uint16_t circShift_BG1_Z30_CNG3[3][1] = {{4},{1},{0}}; -static const uint16_t circShift_BG1_Z8_CNG3[3][1] = {{5},{6},{0}}; -static const uint16_t circShift_BG1_Z12_CNG3[3][1] = {{8},{1},{0}}; -static const uint16_t circShift_BG1_Z20_CNG3[3][1] = {{13},{5},{0}}; -static const uint16_t circShift_BG1_Z28_CNG3[3][1] = {{2},{10},{0}}; -static const uint16_t circShift_BG1_Z36_CNG3[3][1] = {{30},{19},{0}}; -static const uint16_t circShift_BG1_Z44_CNG3[3][1] = {{42},{36},{0}}; -static const uint16_t circShift_BG1_Z52_CNG3[3][1] = {{24},{48},{0}}; -static const uint16_t circShift_BG1_Z60_CNG3[3][1] = {{4},{31},{0}}; -static const uint16_t circShift_BG1_Z16_CNG3[3][1] = {{13},{6},{0}}; -static const uint16_t circShift_BG1_Z24_CNG3[3][1] = {{20},{13},{0}}; -static const uint16_t circShift_BG1_Z40_CNG3[3][1] = {{33},{5},{0}}; -static const uint16_t circShift_BG1_Z56_CNG3[3][1] = {{2},{10},{0}}; -static const uint16_t circShift_BG1_Z72_CNG3[3][1] = {{30},{19},{0}}; -static const uint16_t circShift_BG1_Z88_CNG3[3][1] = {{42},{80},{0}}; -static const uint16_t circShift_BG1_Z104_CNG3[3][1] = {{24},{100},{0}}; -static const uint16_t circShift_BG1_Z120_CNG3[3][1] = {{64},{91},{0}}; -static const uint16_t circShift_BG1_Z32_CNG3[3][1] = {{29},{6},{0}}; -static const uint16_t circShift_BG1_Z48_CNG3[3][1] = {{44},{37},{0}}; -static const uint16_t circShift_BG1_Z80_CNG3[3][1] = {{73},{45},{0}}; -static const uint16_t circShift_BG1_Z112_CNG3[3][1] = {{58},{10},{0}}; -static const uint16_t circShift_BG1_Z144_CNG3[3][1] = {{102},{91},{0}}; -static const uint16_t circShift_BG1_Z176_CNG3[3][1] = {{42},{80},{0}}; -static const uint16_t circShift_BG1_Z208_CNG3[3][1] = {{24},{204},{0}}; -static const uint16_t circShift_BG1_Z240_CNG3[3][1] = {{64},{211},{0}}; -static const uint16_t circShift_BG1_Z64_CNG3[3][1] = {{29},{38},{0}}; -static const uint16_t circShift_BG1_Z96_CNG3[3][1] = {{44},{85},{0}}; -static const uint16_t circShift_BG1_Z160_CNG3[3][1] = {{73},{45},{0}}; -static const uint16_t circShift_BG1_Z224_CNG3[3][1] = {{170},{10},{0}}; -static const uint16_t circShift_BG1_Z288_CNG3[3][1] = {{246},{235},{0}}; -static const uint16_t circShift_BG1_Z352_CNG3[3][1] = {{42},{256},{0}}; -static const uint16_t circShift_BG1_Z128_CNG3[3][1] = {{29},{102},{0}}; -static const uint16_t circShift_BG1_Z192_CNG3[3][1] = {{140},{181},{0}}; -static const uint16_t circShift_BG1_Z320_CNG3[3][1] = {{233},{205},{0}}; -static const uint16_t circShift_BG1_Z256_CNG3[3][1] = {{157},{102},{0}}; -static const uint16_t circShift_BG1_Z384_CNG3[3][1] = {{332},{181},{0}}; - -// Group of CNs with 4 BNs (CNG4) ->[Num BNs][Num of CN with 4 BNs] -static const uint16_t circShift_BG1_Z2_CNG4[4][5] = {{1, 0, 1, 1, 1},{0, 0, 1, 1, 1},{0, 0, 1, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG4[4][5] = {{2, 2, 1, 2, 0},{2, 1, 1, 2, 2},{2, 1, 0, 2, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG4[4][5] = {{0, 3, 2, 1, 1},{4, 0, 0, 0, 3},{4, 0, 2, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG4[4][5] = {{5, 4, 4, 2, 2},{1, 6, 3, 0, 2},{6, 5, 5, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG4[4][5] = {{0, 0, 0, 0, 6},{0, 0, 0, 0, 0},{0, 0, 2, 8, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG4[4][5] = {{3, 0, 7, 2, 5},{7, 5, 6, 6, 1},{4, 8, 3, 6, 4},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG4[4][5] = {{7, 4, 10, 7, 12},{10, 2, 6, 10, 6},{9, 5, 12, 6, 10},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG4[4][5] = {{0, 14, 4, 12, 12},{7, 9, 13, 5, 9},{9, 11, 0, 11, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG4[4][5] = {{1, 2, 1, 1, 1},{0, 0, 1, 1, 3},{2, 2, 1, 1, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG4[4][5] = {{2, 5, 1, 5, 3},{2, 4, 1, 2, 5},{5, 1, 0, 2, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG4[4][5] = {{0, 8, 2, 6, 1},{9, 5, 0, 5, 8},{4, 5, 7, 6, 6},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG4[4][5] = {{12, 11, 11, 2, 2},{1, 13, 3, 7, 9},{6, 12, 12, 8, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG4[4][5] = {{9, 0, 0, 9, 6},{0, 0, 0, 0, 0},{0, 0, 2, 17, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG4[4][5] = {{3, 11, 18, 2, 16},{18, 16, 17, 17, 1},{4, 19, 3, 17, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG4[4][5] = {{20, 4, 10, 7, 25},{10, 2, 6, 10, 19},{22, 5, 12, 6, 23},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG4[4][5] = {{15, 29, 4, 12, 27},{22, 24, 13, 20, 24},{9, 11, 0, 11, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG4[4][5] = {{1, 6, 5, 5, 5},{0, 4, 1, 5, 7},{2, 2, 5, 1, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG4[4][5] = {{2, 5, 7, 5, 3},{2, 10, 1, 2, 5},{5, 7, 0, 2, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG4[4][5] = {{10, 18, 12, 6, 1},{9, 15, 0, 5, 8},{4, 15, 17, 6, 6},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG4[4][5] = {{12, 25, 11, 2, 16},{1, 27, 17, 7, 9},{6, 26, 12, 22, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG4[4][5] = {{9, 0, 0, 27, 24},{0, 0, 0, 0, 0},{0, 0, 2, 35, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG4[4][5] = {{3, 11, 40, 24, 38},{18, 16, 17, 39, 23},{4, 41, 3, 17, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG4[4][5] = {{46, 30, 10, 7, 25},{36, 2, 32, 10, 45},{22, 31, 12, 6, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG4[4][5] = {{45, 59, 4, 42, 57},{52, 24, 43, 50, 54},{9, 41, 30, 11, 33},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG4[4][5] = {{9, 6, 13, 5, 5},{8, 12, 9, 13, 7},{2, 10, 5, 9, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG4[4][5] = {{2, 5, 7, 17, 15},{2, 10, 13, 14, 5},{5, 19, 0, 2, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG4[4][5] = {{10, 18, 32, 26, 21},{29, 15, 0, 25, 28},{24, 35, 37, 6, 6},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG4[4][5] = {{40, 25, 11, 2, 16},{29, 27, 45, 35, 9},{6, 26, 40, 22, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG4[4][5] = {{45, 0, 0, 27, 24},{36, 0, 0, 0, 0},{0, 0, 2, 35, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG4[4][5] = {{3, 55, 40, 24, 82},{62, 60, 61, 83, 67},{4, 85, 47, 17, 59},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG4[4][5] = {{98, 82, 10, 59, 77},{36, 2, 84, 10, 45},{22, 31, 12, 58, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG4[4][5] = {{45, 59, 4, 102, 57},{112, 84, 103, 50, 114},{9, 41, 30, 71, 93},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG4[4][5] = {{25, 6, 29, 21, 21},{8, 28, 9, 29, 23},{2, 26, 21, 9, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG4[4][5] = {{2, 29, 31, 17, 39},{2, 34, 37, 14, 5},{5, 19, 24, 26, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG4[4][5] = {{50, 58, 32, 66, 21},{29, 15, 0, 65, 68},{64, 35, 37, 46, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG4[4][5] = {{96, 81, 67, 2, 72},{29, 83, 45, 91, 9},{62, 26, 96, 78, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG4[4][5] = {{45, 72, 72, 27, 24},{36, 0, 0, 0, 0},{72, 0, 2, 35, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG4[4][5] = {{91, 143, 128, 112, 82},{150, 60, 61, 83, 67},{92, 85, 135, 17, 59},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG4[4][5] = {{98, 82, 10, 163, 181},{140, 2, 84, 10, 45},{22, 135, 12, 162, 153},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG4[4][5] = {{165, 59, 4, 222, 177},{232, 204, 103, 170, 114},{9, 161, 30, 71, 93},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG4[4][5] = {{25, 6, 29, 21, 21},{40, 28, 9, 29, 23},{2, 58, 21, 9, 39},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG4[4][5] = {{2, 77, 79, 17, 39},{2, 82, 37, 14, 53},{5, 19, 24, 26, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG4[4][5] = {{50, 138, 32, 66, 101},{29, 15, 80, 65, 68},{144, 115, 37, 126, 126},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG4[4][5] = {{208, 81, 67, 114, 184},{141, 195, 45, 91, 121},{174, 138, 96, 78, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG4[4][5] = {{45, 72, 216, 27, 168},{36, 144, 144, 0, 0},{72, 0, 2, 35, 144},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG4[4][5] = {{91, 319, 304, 288, 82},{326, 236, 237, 83, 67},{268, 85, 135, 17, 235},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG4[4][5] = {{25, 70, 29, 21, 21},{104, 92, 9, 29, 23},{66, 122, 21, 9, 39},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG4[4][5] = {{2, 77, 175, 113, 135},{2, 82, 37, 14, 149},{101, 115, 120, 26, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG4[4][5] = {{210, 298, 32, 226, 101},{29, 15, 80, 65, 228},{304, 115, 197, 126, 126},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG4[4][5] = {{25, 198, 157, 149, 149},{104, 220, 137, 157, 151},{194, 122, 149, 137, 167},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG4[4][5] = {{194, 269, 175, 113, 135},{194, 82, 37, 14, 149},{101, 115, 312, 218, 15},{0, 0, 0, 0, 0}}; - -// Group of CNs with 5 BNs (CNG5) ->[Num BNs][Num of CN with 5 BNs] -static const uint16_t circShift_BG1_Z2_CNG5[5][18] = {{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1},{0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1},{0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1},{0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG5[5][18] = {{0, 0, 0, 2, 0, 0, 0, 1, 0, 2, 2, 2, 0, 2, 0, 1, 2, 2},{2, 2, 2, 0, 1, 2, 1, 2, 0, 2, 1, 2, 1, 0, 0, 2, 0, 0},{2, 1, 2, 1, 1, 0, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1},{1, 0, 0, 1, 1, 0, 0, 1, 2, 0, 0, 2, 0, 1, 0, 0, 0, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG5[5][18] = {{2, 4, 2, 0, 1, 2, 1, 2, 0, 0, 2, 2, 4, 1, 2, 4, 3, 4},{0, 0, 0, 0, 3, 3, 3, 3, 2, 0, 1, 3, 4, 4, 2, 2, 4, 2},{0, 3, 1, 3, 0, 2, 0, 1, 1, 0, 0, 0, 3, 4, 2, 4, 1, 4},{1, 0, 1, 2, 4, 4, 0, 2, 2, 3, 4, 0, 0, 1, 3, 2, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG5[5][18] = {{4, 4, 1, 2, 6, 3, 6, 0, 3, 2, 5, 3, 5, 4, 5, 2, 3, 0},{0, 0, 5, 1, 6, 4, 4, 0, 6, 0, 4, 5, 3, 6, 0, 5, 1, 4},{3, 0, 2, 2, 0, 4, 0, 2, 2, 0, 5, 5, 0, 3, 0, 4, 1, 2},{1, 3, 4, 1, 2, 5, 4, 2, 2, 4, 3, 5, 6, 3, 2, 6, 0, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG5[5][18] = {{0, 0, 7, 0, 5, 0, 0, 0, 0, 0, 8, 1, 0, 1, 0, 0, 7, 0},{0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 7, 0, 0, 0, 0, 0},{0, 0, 0, 0, 2, 0, 0, 4, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0},{5, 3, 3, 7, 8, 6, 2, 1, 0, 0, 0, 7, 0, 0, 0, 3, 0, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG5[5][18] = {{5, 7, 4, 6, 3, 9, 6, 2, 10, 1, 5, 1, 3, 10, 5, 2, 1, 2},{3, 6, 2, 7, 1, 5, 5, 0, 1, 7, 1, 1, 4, 9, 0, 0, 3, 2},{5, 5, 1, 6, 7, 1, 7, 4, 8, 9, 2, 8, 2, 0, 4, 3, 9, 7},{3, 7, 10, 0, 2, 8, 3, 2, 6, 2, 10, 4, 1, 4, 8, 8, 2, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG5[5][18] = {{5, 6, 4, 8, 4, 1, 2, 4, 6, 10, 4, 4, 6, 0, 4, 2, 1, 4},{6, 5, 9, 12, 1, 6, 10, 10, 9, 4, 10, 6, 5, 12, 2, 10, 7, 6},{0, 2, 3, 10, 1, 2, 8, 8, 11, 6, 2, 12, 8, 3, 5, 12, 8, 12},{1, 9, 2, 2, 2, 6, 7, 12, 7, 1, 12, 3, 4, 9, 6, 11, 7, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG5[5][18] = {{10, 5, 12, 13, 2, 7, 5, 13, 13, 4, 11, 6, 11, 1, 10, 8, 7, 11},{2, 7, 6, 11, 13, 2, 4, 14, 5, 12, 12, 9, 12, 0, 8, 9, 7, 1},{6, 12, 11, 4, 5, 13, 11, 10, 1, 7, 7, 10, 12, 11, 3, 5, 4, 7},{13, 4, 1, 8, 10, 13, 0, 3, 1, 5, 0, 10, 10, 5, 7, 9, 5, 13},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG5[5][18] = {{0, 0, 3, 3, 0, 2, 0, 3, 1, 2, 3, 1, 1, 3, 1, 3, 3, 3},{2, 3, 0, 3, 1, 0, 1, 1, 0, 3, 3, 1, 1, 3, 3, 1, 3, 1},{0, 2, 0, 3, 1, 0, 0, 0, 3, 1, 0, 3, 3, 1, 1, 3, 1, 3},{2, 0, 2, 1, 3, 2, 1, 1, 1, 3, 3, 3, 0, 3, 0, 3, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG5[5][18] = {{0, 0, 0, 5, 0, 0, 3, 4, 0, 5, 2, 2, 0, 5, 0, 4, 5, 2},{5, 5, 5, 3, 1, 5, 1, 5, 3, 2, 4, 5, 1, 3, 3, 2, 0, 0},{5, 1, 5, 4, 4, 3, 2, 0, 1, 1, 4, 2, 3, 1, 4, 1, 0, 1},{4, 3, 0, 4, 4, 0, 0, 4, 5, 3, 0, 2, 3, 4, 3, 0, 0, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG5[5][18] = {{7, 9, 2, 0, 1, 7, 1, 2, 0, 0, 7, 7, 9, 1, 2, 4, 8, 4},{0, 0, 5, 0, 3, 8, 3, 8, 2, 0, 6, 8, 9, 9, 7, 7, 9, 7},{5, 3, 6, 8, 0, 7, 5, 6, 1, 0, 5, 5, 8, 4, 2, 4, 6, 9},{6, 5, 6, 7, 4, 9, 5, 2, 7, 3, 4, 5, 0, 1, 8, 7, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG5[5][18] = {{11, 4, 1, 9, 6, 10, 6, 7, 10, 2, 12, 10, 12, 11, 12, 9, 10, 0},{0, 7, 12, 8, 13, 11, 4, 7, 13, 7, 4, 5, 3, 6, 7, 5, 8, 4},{3, 0, 9, 2, 7, 11, 0, 9, 2, 7, 12, 12, 0, 3, 7, 4, 8, 9},{8, 10, 11, 1, 2, 12, 11, 2, 2, 11, 10, 5, 6, 10, 2, 13, 7, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG5[5][18] = {{0, 0, 7, 0, 5, 0, 0, 0, 0, 0, 17, 1, 0, 10, 9, 0, 16, 0},{9, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 16, 0, 0, 0, 9, 0},{0, 0, 0, 0, 11, 0, 0, 4, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0},{5, 3, 3, 7, 8, 6, 11, 1, 0, 0, 0, 7, 0, 0, 9, 3, 0, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG5[5][18] = {{16, 18, 15, 17, 14, 9, 17, 13, 21, 12, 16, 12, 3, 10, 16, 13, 12, 13},{3, 6, 13, 18, 1, 16, 16, 11, 1, 18, 12, 12, 15, 20, 0, 11, 3, 2},{16, 5, 1, 6, 18, 1, 7, 15, 8, 9, 2, 19, 13, 11, 15, 3, 9, 7},{3, 18, 10, 11, 13, 19, 14, 2, 17, 13, 10, 4, 12, 4, 8, 8, 13, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG5[5][18] = {{18, 19, 4, 21, 4, 14, 2, 4, 6, 10, 4, 4, 6, 13, 4, 2, 1, 4},{6, 18, 22, 12, 1, 6, 10, 23, 22, 4, 23, 19, 18, 12, 2, 23, 7, 6},{0, 2, 16, 10, 14, 2, 8, 21, 11, 6, 15, 12, 21, 16, 5, 12, 21, 12},{1, 22, 2, 15, 15, 6, 20, 12, 20, 14, 25, 3, 17, 22, 6, 24, 20, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG5[5][18] = {{25, 5, 27, 13, 2, 22, 20, 13, 13, 19, 11, 21, 11, 1, 25, 23, 22, 11},{17, 7, 21, 11, 13, 2, 19, 29, 20, 12, 27, 24, 27, 0, 8, 9, 7, 1},{6, 27, 11, 19, 20, 28, 26, 25, 1, 22, 22, 25, 12, 26, 18, 5, 19, 7},{28, 19, 1, 8, 25, 13, 15, 18, 1, 5, 0, 10, 10, 20, 22, 24, 5, 28},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG5[5][18] = {{0, 4, 7, 3, 0, 6, 0, 7, 5, 2, 7, 1, 5, 7, 5, 7, 7, 3},{6, 3, 0, 3, 5, 4, 1, 1, 0, 3, 7, 5, 1, 7, 3, 5, 3, 5},{4, 2, 4, 7, 5, 4, 0, 4, 7, 1, 4, 7, 3, 5, 5, 3, 5, 3},{6, 0, 6, 5, 7, 6, 1, 5, 1, 3, 7, 7, 0, 3, 0, 7, 3, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG5[5][18] = {{6, 0, 0, 11, 6, 0, 3, 4, 6, 11, 2, 8, 6, 5, 6, 4, 5, 8},{11, 5, 5, 9, 7, 5, 1, 11, 9, 8, 4, 11, 1, 9, 9, 2, 0, 6},{5, 1, 11, 4, 4, 3, 8, 6, 7, 1, 10, 2, 9, 1, 10, 7, 6, 7},{10, 3, 0, 4, 10, 6, 6, 4, 11, 9, 0, 2, 9, 10, 9, 0, 0, 10},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG5[5][18] = {{17, 9, 12, 10, 11, 7, 11, 2, 10, 10, 7, 7, 19, 11, 2, 14, 8, 14},{0, 10, 15, 10, 13, 8, 3, 8, 2, 0, 16, 18, 19, 19, 17, 7, 9, 7},{15, 13, 16, 18, 10, 17, 5, 6, 11, 0, 5, 15, 18, 4, 12, 4, 16, 19},{16, 5, 6, 7, 14, 9, 15, 2, 17, 13, 4, 5, 0, 1, 8, 7, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG5[5][18] = {{25, 4, 1, 23, 6, 10, 6, 7, 24, 2, 26, 24, 26, 11, 12, 23, 10, 0},{0, 7, 26, 8, 13, 11, 18, 21, 13, 21, 18, 5, 17, 6, 21, 19, 22, 4},{3, 0, 9, 16, 21, 25, 14, 9, 2, 21, 12, 26, 0, 17, 21, 4, 22, 9},{8, 10, 25, 15, 2, 12, 11, 16, 2, 25, 10, 19, 6, 10, 2, 27, 21, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG5[5][18] = {{0, 0, 25, 0, 23, 0, 0, 0, 0, 0, 17, 19, 0, 10, 9, 0, 16, 18},{9, 0, 0, 0, 0, 0, 18, 0, 31, 0, 0, 26, 16, 0, 0, 0, 27, 0},{0, 0, 0, 0, 11, 0, 0, 22, 0, 4, 0, 0, 0, 0, 21, 0, 0, 0},{5, 21, 3, 25, 26, 6, 29, 19, 18, 18, 0, 25, 0, 0, 9, 3, 18, 21},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG5[5][18] = {{16, 18, 15, 17, 14, 9, 39, 13, 43, 12, 16, 12, 3, 32, 16, 35, 34, 35},{25, 6, 35, 18, 1, 16, 16, 33, 1, 40, 12, 34, 15, 20, 0, 33, 3, 24},{16, 5, 23, 6, 40, 23, 7, 15, 30, 9, 24, 19, 35, 33, 37, 25, 9, 29},{25, 40, 10, 11, 35, 19, 36, 2, 39, 13, 10, 4, 12, 26, 8, 8, 35, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG5[5][18] = {{44, 45, 4, 21, 4, 40, 2, 4, 6, 10, 4, 4, 6, 39, 4, 2, 1, 4},{6, 18, 22, 38, 1, 32, 36, 49, 22, 30, 49, 45, 44, 12, 28, 23, 7, 6},{26, 28, 16, 36, 40, 2, 8, 21, 11, 6, 41, 12, 21, 42, 5, 38, 47, 38},{27, 48, 28, 41, 41, 6, 20, 38, 20, 40, 51, 29, 43, 48, 32, 24, 46, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG5[5][18] = {{25, 5, 27, 43, 32, 52, 50, 13, 43, 19, 41, 51, 11, 1, 55, 53, 22, 11},{47, 7, 21, 11, 43, 32, 19, 29, 50, 12, 57, 54, 27, 30, 8, 9, 7, 31},{6, 57, 11, 49, 20, 58, 26, 55, 31, 52, 22, 25, 42, 26, 48, 35, 49, 7},{58, 19, 1, 38, 25, 43, 45, 48, 31, 5, 0, 40, 40, 20, 52, 24, 5, 28},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG5[5][18] = {{0, 12, 7, 3, 0, 6, 8, 15, 13, 2, 15, 1, 5, 7, 13, 7, 7, 11},{14, 3, 8, 3, 5, 12, 9, 1, 0, 11, 7, 5, 9, 7, 11, 13, 3, 13},{12, 10, 4, 7, 5, 4, 8, 12, 7, 9, 4, 15, 3, 13, 5, 11, 13, 3},{14, 8, 6, 13, 15, 6, 9, 13, 9, 3, 15, 7, 8, 3, 0, 7, 11, 13},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG5[5][18] = {{6, 0, 0, 23, 6, 12, 15, 4, 6, 11, 14, 8, 18, 17, 18, 4, 17, 8},{11, 17, 17, 9, 19, 5, 13, 23, 9, 8, 4, 23, 1, 9, 21, 2, 12, 6},{17, 13, 23, 4, 4, 3, 20, 18, 7, 1, 10, 2, 9, 1, 10, 19, 18, 19},{22, 3, 0, 16, 10, 6, 18, 16, 23, 9, 0, 2, 21, 22, 9, 0, 0, 10},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG5[5][18] = {{17, 9, 12, 30, 11, 27, 11, 22, 10, 10, 27, 7, 19, 31, 22, 34, 28, 34},{20, 10, 15, 30, 13, 28, 23, 28, 22, 20, 16, 38, 19, 19, 37, 7, 29, 27},{15, 13, 16, 38, 10, 37, 25, 26, 31, 20, 5, 15, 18, 24, 32, 4, 16, 19},{36, 25, 6, 27, 34, 29, 15, 2, 17, 33, 4, 5, 0, 21, 8, 7, 22, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG5[5][18] = {{53, 32, 1, 51, 34, 38, 34, 7, 24, 2, 26, 24, 54, 11, 12, 23, 38, 28},{0, 35, 54, 8, 41, 11, 18, 49, 41, 49, 18, 5, 45, 34, 21, 47, 22, 4},{3, 0, 9, 44, 49, 53, 42, 9, 2, 49, 12, 26, 0, 17, 49, 4, 22, 9},{36, 10, 25, 15, 2, 12, 11, 16, 30, 25, 38, 19, 6, 10, 2, 55, 49, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG5[5][18] = {{0, 36, 61, 0, 59, 0, 0, 0, 0, 0, 53, 55, 0, 46, 9, 0, 52, 18},{45, 0, 0, 0, 0, 36, 18, 0, 67, 0, 0, 62, 16, 0, 0, 0, 27, 0},{0, 0, 0, 0, 11, 0, 36, 22, 36, 4, 36, 0, 0, 0, 21, 0, 0, 0},{41, 21, 39, 61, 62, 42, 29, 19, 18, 18, 0, 61, 0, 0, 45, 39, 54, 57},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG5[5][18] = {{16, 18, 15, 61, 14, 9, 83, 13, 87, 56, 60, 12, 47, 76, 60, 35, 34, 79},{69, 6, 79, 62, 1, 16, 16, 33, 1, 40, 56, 34, 15, 20, 0, 77, 3, 68},{60, 5, 23, 50, 40, 67, 7, 15, 74, 53, 24, 19, 35, 33, 37, 25, 53, 29},{25, 40, 54, 11, 79, 19, 36, 46, 83, 13, 54, 4, 12, 70, 8, 8, 79, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG5[5][18] = {{44, 45, 4, 21, 4, 92, 2, 4, 6, 10, 4, 4, 6, 91, 4, 2, 1, 4},{58, 18, 74, 38, 1, 32, 88, 49, 22, 30, 49, 45, 96, 64, 28, 75, 59, 6},{26, 28, 16, 88, 40, 2, 8, 21, 63, 6, 93, 64, 73, 94, 5, 38, 99, 38},{27, 100, 28, 93, 93, 6, 20, 90, 20, 92, 51, 81, 43, 100, 84, 24, 98, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG5[5][18] = {{25, 65, 27, 43, 32, 112, 50, 73, 103, 79, 41, 111, 11, 1, 115, 53, 22, 71},{47, 7, 21, 11, 43, 32, 79, 29, 110, 12, 117, 54, 87, 90, 68, 69, 7, 91},{6, 117, 11, 49, 80, 118, 26, 55, 31, 52, 22, 25, 42, 26, 48, 95, 49, 67},{58, 79, 61, 98, 85, 103, 105, 108, 91, 65, 60, 100, 100, 20, 52, 24, 5, 28},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG5[5][18] = {{0, 28, 23, 3, 0, 22, 24, 31, 29, 2, 31, 1, 5, 7, 13, 7, 23, 11},{14, 19, 8, 19, 5, 12, 9, 17, 16, 27, 7, 5, 9, 23, 11, 13, 3, 29},{28, 10, 20, 23, 21, 20, 24, 12, 7, 9, 4, 15, 19, 29, 21, 11, 13, 3},{30, 24, 22, 29, 31, 6, 9, 29, 25, 19, 31, 7, 24, 3, 0, 23, 11, 13},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG5[5][18] = {{30, 24, 24, 23, 30, 12, 15, 4, 6, 35, 38, 32, 18, 41, 18, 4, 17, 32},{11, 41, 17, 33, 19, 5, 37, 23, 9, 8, 4, 47, 25, 33, 45, 26, 36, 30},{41, 13, 47, 28, 4, 3, 20, 18, 31, 25, 10, 2, 9, 1, 10, 43, 18, 19},{22, 27, 24, 40, 34, 30, 42, 16, 47, 9, 24, 26, 21, 22, 9, 0, 24, 34},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG5[5][18] = {{17, 9, 12, 30, 11, 27, 11, 62, 50, 10, 27, 47, 19, 71, 22, 74, 68, 74},{20, 50, 55, 30, 53, 68, 23, 68, 22, 20, 56, 78, 19, 19, 77, 47, 69, 67},{55, 53, 16, 78, 50, 37, 25, 66, 31, 60, 5, 55, 18, 64, 32, 44, 16, 19},{76, 25, 46, 67, 74, 29, 55, 2, 57, 33, 44, 45, 0, 21, 48, 47, 22, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG5[5][18] = {{53, 88, 1, 107, 34, 38, 34, 63, 80, 2, 82, 80, 110, 11, 12, 23, 94, 84},{0, 91, 54, 64, 41, 11, 18, 49, 97, 49, 74, 61, 45, 90, 77, 103, 22, 4},{3, 56, 65, 100, 105, 53, 98, 65, 58, 49, 68, 26, 0, 73, 49, 60, 22, 9},{36, 10, 81, 15, 2, 68, 11, 16, 30, 25, 38, 75, 6, 10, 2, 55, 49, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG5[5][18] = {{72, 36, 61, 0, 131, 0, 0, 0, 0, 0, 53, 55, 72, 46, 9, 0, 52, 18},{45, 0, 0, 0, 0, 36, 90, 0, 67, 0, 0, 134, 16, 0, 0, 0, 99, 0},{72, 0, 0, 0, 11, 0, 108, 22, 36, 76, 108, 0, 0, 0, 21, 0, 0, 0},{113, 21, 39, 133, 62, 42, 29, 19, 18, 18, 0, 61, 0, 0, 117, 39, 126, 57},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG5[5][18] = {{104, 18, 103, 149, 102, 97, 171, 101, 175, 56, 60, 100, 135, 164, 60, 123, 34, 79},{157, 6, 79, 150, 1, 104, 16, 121, 89, 128, 144, 34, 15, 20, 88, 77, 3, 68},{60, 5, 111, 50, 40, 67, 95, 103, 162, 141, 112, 19, 35, 33, 37, 25, 53, 117},{113, 128, 54, 99, 167, 107, 36, 46, 83, 101, 54, 92, 12, 70, 96, 96, 167, 96},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG5[5][18] = {{44, 45, 4, 21, 4, 92, 2, 4, 6, 10, 4, 4, 6, 91, 4, 2, 1, 4},{58, 18, 74, 142, 1, 136, 88, 49, 126, 30, 153, 45, 200, 64, 28, 75, 163, 6},{130, 132, 16, 192, 40, 106, 112, 125, 63, 6, 197, 168, 177, 198, 109, 142, 99, 142},{131, 100, 28, 197, 93, 6, 20, 194, 20, 92, 155, 185, 43, 100, 188, 128, 98, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG5[5][18] = {{25, 185, 27, 163, 32, 232, 170, 73, 103, 199, 161, 231, 11, 121, 115, 53, 22, 191},{47, 127, 141, 131, 43, 32, 199, 149, 110, 132, 237, 174, 207, 90, 188, 189, 127, 211},{126, 117, 11, 169, 200, 118, 26, 175, 151, 172, 142, 145, 42, 26, 168, 215, 49, 187},{178, 199, 181, 98, 205, 103, 105, 108, 211, 65, 180, 100, 100, 140, 52, 24, 125, 148},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG5[5][18] = {{0, 28, 23, 3, 0, 22, 24, 31, 29, 2, 63, 33, 37, 39, 45, 39, 23, 11},{14, 19, 8, 51, 37, 44, 9, 49, 48, 59, 39, 5, 41, 23, 11, 45, 35, 29},{60, 42, 52, 23, 53, 20, 56, 44, 7, 41, 36, 15, 51, 29, 21, 11, 45, 35},{30, 24, 54, 61, 63, 6, 9, 61, 57, 19, 31, 39, 56, 35, 0, 23, 11, 45},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG5[5][18] = {{30, 24, 72, 71, 30, 60, 63, 4, 6, 35, 38, 32, 18, 89, 66, 52, 17, 80},{11, 89, 17, 81, 19, 5, 37, 23, 9, 8, 52, 47, 25, 81, 93, 26, 36, 78},{41, 61, 95, 76, 52, 51, 68, 66, 79, 73, 10, 2, 9, 1, 58, 43, 18, 67},{22, 27, 24, 40, 82, 78, 90, 64, 95, 9, 24, 74, 21, 22, 9, 0, 72, 82},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG5[5][18] = {{17, 89, 12, 110, 11, 27, 91, 62, 50, 10, 27, 47, 99, 151, 102, 154, 68, 74},{20, 50, 135, 110, 133, 148, 23, 148, 22, 20, 136, 158, 19, 19, 77, 47, 69, 67},{55, 133, 96, 158, 50, 117, 105, 66, 111, 140, 5, 55, 18, 64, 32, 124, 16, 99},{156, 105, 46, 67, 74, 29, 135, 2, 57, 33, 44, 125, 0, 21, 48, 47, 102, 100},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG5[5][18] = {{53, 88, 1, 107, 146, 150, 34, 175, 192, 114, 82, 192, 222, 123, 12, 23, 206, 84},{0, 203, 166, 176, 153, 11, 130, 49, 209, 49, 186, 173, 157, 90, 77, 215, 22, 4},{3, 168, 65, 212, 217, 53, 210, 177, 58, 161, 68, 26, 0, 73, 49, 60, 134, 9},{148, 122, 81, 127, 114, 68, 123, 128, 30, 137, 150, 187, 6, 10, 114, 167, 161, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG5[5][18] = {{72, 180, 205, 0, 275, 0, 0, 144, 0, 0, 197, 199, 216, 190, 153, 0, 52, 18},{189, 0, 0, 0, 0, 180, 90, 144, 211, 0, 0, 278, 16, 0, 0, 0, 243, 0},{72, 0, 0, 0, 155, 0, 252, 166, 36, 76, 108, 0, 0, 0, 165, 0, 0, 0},{257, 165, 183, 277, 62, 42, 173, 19, 162, 18, 0, 205, 0, 0, 117, 183, 270, 57},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG5[5][18] = {{280, 18, 279, 325, 102, 273, 171, 101, 351, 56, 60, 100, 135, 164, 236, 123, 210, 79},{157, 6, 255, 326, 1, 104, 16, 297, 265, 304, 320, 210, 15, 196, 264, 77, 3, 244},{236, 181, 111, 226, 40, 243, 95, 279, 338, 141, 112, 195, 35, 209, 37, 25, 53, 293},{113, 304, 54, 99, 167, 107, 212, 222, 83, 101, 54, 268, 188, 246, 272, 272, 167, 272},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG5[5][18] = {{64, 28, 23, 67, 0, 86, 88, 95, 93, 2, 127, 33, 37, 39, 45, 39, 23, 11},{14, 19, 8, 115, 37, 108, 73, 49, 112, 59, 39, 69, 105, 23, 11, 45, 35, 29},{60, 42, 116, 87, 53, 84, 120, 44, 71, 41, 36, 79, 51, 29, 21, 11, 45, 35},{30, 24, 54, 61, 63, 6, 9, 61, 121, 83, 31, 103, 120, 35, 0, 23, 11, 45},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG5[5][18] = {{30, 24, 72, 71, 30, 60, 159, 100, 102, 131, 38, 128, 18, 185, 66, 52, 113, 80},{11, 89, 17, 81, 19, 5, 37, 23, 9, 8, 148, 143, 121, 177, 93, 122, 132, 78},{41, 61, 191, 76, 52, 147, 68, 66, 175, 169, 10, 2, 105, 97, 154, 139, 114, 163},{22, 27, 120, 136, 82, 78, 90, 64, 95, 105, 120, 74, 21, 22, 105, 96, 168, 82},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG5[5][18] = {{177, 249, 172, 270, 11, 27, 91, 222, 210, 170, 187, 207, 259, 151, 102, 154, 228, 234},{20, 50, 295, 110, 293, 308, 23, 308, 22, 20, 296, 158, 179, 179, 77, 47, 69, 227},{55, 133, 96, 318, 50, 117, 105, 66, 271, 140, 5, 55, 178, 64, 192, 124, 176, 259},{316, 105, 46, 67, 234, 29, 135, 162, 217, 33, 44, 285, 160, 181, 208, 207, 102, 260},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG5[5][18] = {{64, 156, 23, 195, 128, 86, 216, 95, 221, 2, 127, 161, 37, 167, 173, 167, 151, 139},{142, 147, 136, 243, 165, 236, 73, 177, 112, 187, 167, 197, 105, 151, 139, 173, 163, 157},{188, 170, 116, 215, 181, 84, 120, 172, 199, 41, 164, 207, 51, 157, 149, 139, 173, 163},{158, 152, 182, 61, 63, 6, 9, 61, 121, 211, 159, 103, 120, 163, 0, 151, 139, 173},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG5[5][18] = {{30, 24, 72, 71, 222, 252, 159, 100, 102, 323, 230, 320, 210, 185, 258, 52, 113, 80},{11, 89, 17, 81, 19, 5, 229, 215, 201, 8, 148, 335, 313, 177, 93, 314, 132, 78},{233, 61, 383, 76, 244, 147, 260, 258, 175, 361, 202, 2, 297, 289, 346, 139, 114, 163},{22, 27, 312, 136, 274, 78, 90, 256, 287, 105, 312, 266, 21, 214, 297, 288, 168, 274},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - -// Group of CNs with 6 BNs (CNG6) ->[Num BNs][Num of CN with 6 BNs] -static const uint16_t circShift_BG1_Z2_CNG6[6][8] = {{1, 0, 1, 0, 0, 1, 1, 0},{0, 1, 0, 1, 1, 0, 1, 0},{1, 1, 1, 0, 0, 1, 1, 0},{1, 1, 1, 1, 1, 1, 1, 0},{0, 0, 0, 1, 0, 0, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG6[6][8] = {{1, 1, 2, 1, 1, 1, 1, 1},{0, 2, 0, 1, 0, 2, 0, 2},{2, 0, 0, 1, 2, 0, 1, 1},{1, 1, 1, 0, 2, 2, 0, 0},{1, 0, 0, 1, 2, 2, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG6[6][8] = {{4, 4, 2, 0, 4, 1, 4, 4},{2, 0, 2, 4, 1, 2, 0, 0},{3, 0, 3, 1, 1, 0, 2, 0},{0, 0, 1, 1, 0, 0, 3, 2},{2, 0, 3, 0, 1, 0, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG6[6][8] = {{4, 0, 0, 3, 1, 0, 3, 0},{0, 3, 5, 5, 6, 0, 5, 3},{2, 1, 4, 4, 5, 2, 3, 1},{0, 0, 0, 3, 2, 4, 1, 4},{1, 3, 4, 4, 1, 1, 1, 5},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG6[6][8] = {{6, 0, 0, 8, 0, 4, 1, 2},{0, 4, 2, 7, 0, 0, 1, 1},{0, 0, 0, 0, 1, 0, 5, 0},{2, 0, 0, 7, 0, 0, 0, 5},{0, 0, 0, 0, 0, 3, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG6[6][8] = {{3, 3, 0, 3, 10, 1, 8, 5},{9, 7, 8, 0, 0, 10, 0, 5},{1, 2, 5, 4, 4, 1, 5, 7},{6, 1, 6, 5, 5, 2, 0, 2},{4, 4, 3, 7, 6, 8, 10, 7},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG6[6][8] = {{0, 10, 0, 1, 12, 6, 6, 9},{4, 3, 2, 2, 6, 12, 8, 8},{1, 4, 4, 11, 10, 2, 5, 9},{3, 5, 3, 3, 2, 5, 3, 2},{7, 0, 12, 5, 9, 4, 4, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG6[6][8] = {{10, 3, 3, 3, 14, 2, 2, 2},{5, 2, 7, 5, 3, 7, 2, 13},{4, 9, 1, 0, 9, 8, 5, 2},{13, 5, 9, 8, 3, 2, 5, 6},{0, 10, 9, 14, 1, 10, 6, 13},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG6[6][8] = {{1, 0, 3, 2, 0, 3, 1, 0},{0, 1, 0, 1, 1, 2, 1, 2},{3, 1, 3, 0, 0, 1, 1, 0},{1, 3, 1, 3, 3, 3, 3, 0},{2, 2, 0, 3, 0, 0, 3, 2},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG6[6][8] = {{1, 1, 2, 4, 1, 1, 1, 4},{3, 2, 3, 1, 3, 2, 0, 2},{2, 3, 3, 4, 2, 0, 4, 1},{1, 1, 4, 0, 2, 5, 3, 3},{4, 3, 3, 4, 5, 5, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG6[6][8] = {{9, 9, 7, 0, 4, 1, 9, 9},{2, 0, 7, 4, 1, 2, 5, 0},{3, 5, 8, 1, 1, 0, 2, 0},{0, 5, 1, 1, 0, 0, 3, 7},{7, 0, 8, 5, 1, 0, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG6[6][8] = {{11, 0, 0, 3, 8, 7, 10, 7},{0, 10, 12, 12, 6, 0, 5, 3},{2, 1, 4, 4, 5, 9, 10, 8},{7, 7, 7, 3, 2, 4, 8, 11},{8, 3, 4, 4, 8, 1, 8, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG6[6][8] = {{15, 0, 9, 17, 0, 13, 10, 2},{0, 13, 11, 7, 0, 9, 10, 1},{0, 9, 0, 0, 10, 0, 14, 0},{11, 0, 0, 7, 0, 0, 9, 14},{0, 0, 0, 0, 0, 12, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG6[6][8] = {{3, 14, 0, 3, 21, 1, 8, 16},{9, 7, 8, 0, 0, 21, 0, 16},{1, 2, 5, 4, 15, 1, 16, 7},{6, 1, 6, 5, 16, 2, 11, 2},{15, 4, 14, 7, 6, 8, 21, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG6[6][8] = {{0, 10, 13, 1, 12, 6, 6, 9},{17, 16, 2, 15, 6, 12, 8, 21},{1, 4, 4, 11, 10, 15, 18, 9},{16, 18, 3, 16, 2, 5, 16, 2},{20, 0, 25, 18, 9, 4, 17, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG6[6][8] = {{10, 18, 3, 3, 29, 17, 17, 2},{5, 2, 22, 5, 18, 7, 2, 28},{4, 24, 16, 0, 9, 23, 5, 2},{28, 5, 9, 23, 18, 17, 5, 6},{0, 25, 9, 14, 16, 10, 6, 28},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG6[6][8] = {{1, 0, 7, 2, 4, 7, 1, 0},{0, 1, 4, 1, 1, 2, 1, 6},{7, 1, 3, 0, 0, 1, 5, 4},{1, 3, 1, 3, 7, 7, 3, 4},{6, 2, 0, 3, 0, 0, 3, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG6[6][8] = {{1, 1, 8, 10, 1, 7, 1, 10},{9, 2, 3, 7, 9, 2, 6, 2},{2, 9, 9, 4, 8, 0, 4, 7},{7, 1, 10, 0, 2, 5, 9, 3},{10, 9, 3, 4, 5, 11, 1, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG6[6][8] = {{19, 9, 17, 0, 4, 1, 19, 9},{2, 0, 7, 14, 1, 2, 15, 0},{3, 5, 8, 11, 1, 0, 12, 10},{0, 15, 11, 1, 10, 10, 3, 7},{17, 0, 8, 15, 1, 10, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG6[6][8] = {{25, 14, 0, 3, 8, 21, 24, 21},{0, 24, 26, 26, 6, 14, 19, 17},{16, 15, 4, 4, 19, 9, 24, 8},{21, 21, 7, 3, 2, 18, 22, 25},{22, 17, 4, 18, 8, 15, 22, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG6[6][8] = {{15, 18, 9, 17, 0, 13, 28, 20},{0, 13, 29, 7, 0, 9, 10, 19},{0, 27, 0, 0, 10, 18, 14, 0},{11, 18, 0, 25, 0, 0, 9, 14},{0, 0, 18, 0, 0, 12, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG6[6][8] = {{3, 14, 22, 3, 43, 1, 30, 38},{31, 29, 8, 22, 22, 21, 0, 38},{1, 24, 27, 26, 15, 23, 38, 29},{6, 23, 28, 5, 38, 24, 11, 24},{37, 26, 14, 29, 28, 30, 21, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG6[6][8] = {{0, 36, 39, 1, 12, 6, 6, 9},{43, 42, 28, 41, 6, 12, 34, 21},{1, 4, 30, 11, 10, 15, 44, 35},{16, 18, 3, 16, 28, 5, 42, 28},{46, 26, 51, 44, 35, 30, 43, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG6[6][8] = {{40, 18, 3, 3, 59, 17, 17, 32},{5, 32, 52, 35, 48, 7, 2, 58},{34, 24, 46, 0, 39, 23, 35, 2},{58, 5, 39, 23, 18, 47, 5, 36},{30, 25, 9, 14, 16, 10, 36, 58},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG6[6][8] = {{1, 0, 7, 10, 12, 7, 9, 0},{8, 1, 4, 9, 9, 10, 9, 6},{7, 1, 11, 8, 8, 9, 13, 12},{9, 3, 1, 11, 15, 15, 3, 4},{14, 10, 0, 3, 0, 0, 11, 14},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG6[6][8] = {{1, 13, 20, 10, 1, 19, 13, 10},{9, 2, 15, 19, 21, 14, 6, 14},{2, 9, 9, 16, 8, 0, 16, 19},{19, 1, 22, 12, 2, 5, 21, 3},{10, 9, 15, 4, 5, 11, 1, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG6[6][8] = {{39, 29, 17, 20, 24, 21, 39, 9},{22, 20, 27, 14, 21, 2, 15, 0},{23, 5, 8, 11, 21, 0, 12, 30},{0, 35, 11, 21, 30, 10, 3, 27},{37, 20, 28, 15, 1, 10, 23, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG6[6][8] = {{25, 42, 0, 31, 8, 49, 24, 49},{0, 52, 54, 54, 6, 42, 19, 45},{16, 43, 32, 32, 47, 9, 52, 8},{49, 21, 7, 31, 30, 46, 50, 25},{22, 45, 4, 18, 8, 15, 50, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG6[6][8] = {{15, 54, 9, 17, 0, 49, 64, 20},{0, 13, 65, 7, 0, 9, 46, 55},{0, 27, 0, 0, 46, 18, 50, 0},{47, 54, 0, 25, 0, 0, 9, 50},{36, 0, 18, 0, 0, 12, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG6[6][8] = {{47, 14, 22, 47, 87, 1, 74, 38},{75, 29, 52, 22, 22, 65, 0, 82},{1, 68, 71, 70, 59, 67, 82, 73},{6, 67, 28, 5, 82, 68, 55, 24},{81, 26, 14, 73, 28, 30, 21, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG6[6][8] = {{52, 88, 91, 1, 12, 6, 6, 9},{43, 94, 80, 41, 6, 12, 86, 21},{1, 56, 30, 63, 62, 15, 96, 87},{16, 18, 3, 68, 80, 5, 42, 28},{46, 78, 51, 44, 87, 30, 95, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG6[6][8] = {{100, 78, 63, 63, 59, 77, 77, 32},{65, 32, 112, 95, 108, 67, 2, 58},{34, 84, 106, 60, 39, 83, 95, 2},{58, 5, 99, 23, 18, 47, 65, 36},{30, 85, 9, 14, 76, 10, 96, 58},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG6[6][8] = {{17, 0, 7, 10, 28, 23, 25, 16},{24, 17, 4, 9, 9, 26, 25, 22},{23, 17, 27, 8, 8, 25, 13, 12},{25, 19, 1, 27, 31, 15, 3, 20},{30, 26, 16, 19, 0, 0, 11, 30},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG6[6][8] = {{25, 13, 20, 34, 1, 43, 13, 10},{33, 2, 15, 19, 21, 14, 6, 14},{26, 9, 33, 40, 8, 24, 40, 43},{19, 1, 22, 36, 2, 5, 21, 3},{34, 9, 39, 4, 5, 11, 1, 42},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG6[6][8] = {{39, 69, 17, 20, 64, 61, 79, 49},{62, 60, 67, 54, 21, 2, 15, 40},{63, 45, 48, 51, 21, 40, 52, 30},{0, 35, 51, 61, 30, 50, 43, 27},{37, 60, 68, 55, 41, 10, 23, 41},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG6[6][8] = {{81, 42, 56, 87, 8, 105, 80, 49},{56, 52, 110, 110, 6, 98, 19, 45},{72, 43, 88, 88, 103, 9, 108, 64},{105, 77, 63, 31, 86, 102, 50, 81},{78, 101, 4, 74, 8, 71, 106, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG6[6][8] = {{87, 126, 9, 17, 0, 121, 64, 92},{0, 13, 137, 7, 0, 81, 46, 55},{72, 99, 0, 0, 118, 90, 122, 0},{47, 54, 0, 97, 0, 0, 9, 122},{36, 0, 18, 0, 0, 84, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG6[6][8] = {{135, 14, 110, 47, 87, 89, 162, 38},{75, 117, 52, 110, 110, 65, 88, 170},{89, 156, 71, 70, 147, 155, 170, 73},{94, 155, 116, 5, 82, 68, 143, 112},{81, 114, 14, 73, 28, 30, 109, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG6[6][8] = {{52, 88, 91, 1, 12, 6, 6, 9},{147, 198, 184, 41, 6, 12, 86, 125},{1, 160, 30, 167, 166, 15, 96, 191},{16, 122, 3, 68, 184, 5, 42, 28},{46, 182, 155, 148, 191, 30, 199, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG6[6][8] = {{220, 78, 183, 183, 179, 77, 197, 32},{185, 152, 112, 215, 108, 187, 122, 178},{154, 84, 106, 180, 159, 203, 215, 2},{178, 5, 219, 143, 138, 167, 65, 156},{150, 205, 129, 14, 196, 130, 216, 58},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG6[6][8] = {{49, 0, 7, 42, 60, 23, 57, 48},{56, 49, 36, 41, 9, 58, 57, 22},{23, 49, 59, 8, 8, 25, 45, 44},{57, 51, 1, 27, 63, 47, 3, 52},{62, 26, 16, 19, 32, 32, 43, 30},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG6[6][8] = {{25, 13, 68, 34, 49, 91, 13, 10},{81, 50, 15, 67, 21, 14, 6, 62},{74, 57, 81, 88, 56, 72, 40, 43},{19, 1, 70, 36, 50, 53, 21, 51},{82, 57, 87, 4, 5, 59, 1, 42},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG6[6][8] = {{39, 69, 97, 100, 64, 141, 79, 129},{142, 140, 147, 134, 21, 2, 15, 120},{143, 45, 128, 131, 101, 40, 132, 110},{0, 115, 51, 141, 110, 130, 123, 27},{37, 140, 68, 135, 41, 10, 103, 121},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG6[6][8] = {{81, 154, 56, 199, 8, 105, 192, 49},{56, 164, 110, 110, 6, 210, 131, 157},{72, 43, 200, 200, 103, 121, 220, 64},{217, 189, 63, 143, 198, 214, 50, 193},{78, 101, 4, 186, 8, 183, 106, 124},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG6[6][8] = {{231, 270, 153, 161, 0, 265, 64, 236},{0, 13, 137, 151, 0, 81, 46, 199},{216, 99, 0, 0, 118, 90, 266, 0},{47, 54, 0, 241, 144, 144, 9, 266},{36, 0, 162, 144, 0, 228, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG6[6][8] = {{311, 190, 110, 47, 87, 89, 162, 38},{251, 293, 228, 286, 110, 65, 264, 170},{265, 332, 247, 246, 147, 155, 346, 249},{94, 331, 116, 181, 258, 244, 143, 288},{81, 114, 190, 73, 204, 30, 109, 194},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG6[6][8] = {{49, 64, 7, 42, 60, 23, 121, 112},{120, 49, 36, 105, 73, 58, 121, 86},{23, 49, 59, 8, 72, 89, 109, 108},{57, 51, 1, 27, 127, 47, 3, 116},{62, 26, 16, 19, 96, 32, 43, 94},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG6[6][8] = {{121, 13, 68, 130, 145, 187, 13, 106},{177, 146, 111, 163, 21, 14, 102, 158},{74, 57, 81, 88, 152, 72, 136, 43},{115, 97, 166, 132, 50, 149, 21, 147},{178, 57, 183, 4, 5, 59, 97, 42},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG6[6][8] = {{39, 69, 257, 260, 64, 301, 79, 289},{302, 140, 147, 294, 181, 162, 175, 280},{303, 45, 128, 291, 101, 40, 132, 110},{160, 115, 51, 141, 270, 130, 283, 187},{37, 300, 228, 295, 41, 10, 103, 281},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG6[6][8] = {{177, 64, 7, 42, 60, 151, 249, 112},{248, 49, 164, 233, 73, 186, 121, 86},{151, 49, 59, 8, 72, 217, 109, 236},{185, 51, 1, 155, 127, 47, 131, 116},{62, 154, 144, 147, 224, 160, 171, 222},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG6[6][8] = {{313, 13, 260, 130, 145, 187, 205, 298},{177, 338, 303, 163, 213, 206, 102, 158},{266, 57, 81, 280, 344, 264, 328, 235},{115, 289, 358, 132, 242, 341, 213, 339},{370, 57, 375, 4, 197, 59, 97, 234},{0, 0, 0, 0, 0, 0, 0, 0}}; - -// Group of CNs with 7 BNs (CNG7) ->[Num BNs][Num of CN with 7 BNs] -static const uint16_t circShift_BG1_Z2_CNG7[7][5] = {{0, 0, 0, 0, 0},{0, 1, 0, 1, 0},{1, 1, 1, 0, 1},{1, 0, 0, 1, 1},{1, 1, 0, 0, 1},{0, 0, 1, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG7[7][5] = {{0, 2, 2, 1, 1},{2, 0, 0, 2, 2},{1, 1, 0, 2, 0},{0, 0, 1, 2, 0},{2, 2, 2, 2, 1},{0, 0, 2, 0, 2},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG7[7][5] = {{2, 4, 4, 3, 4},{3, 0, 0, 4, 0},{2, 1, 4, 4, 0},{0, 0, 3, 1, 0},{0, 1, 0, 4, 4},{1, 1, 2, 3, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG7[7][5] = {{3, 5, 2, 0, 6},{6, 4, 0, 0, 1},{6, 6, 3, 1, 5},{2, 5, 3, 2, 6},{3, 5, 0, 2, 6},{4, 5, 0, 1, 4},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG7[7][5] = {{7, 7, 0, 0, 8},{0, 1, 0, 6, 0},{1, 1, 1, 1, 3},{4, 6, 7, 7, 0},{5, 0, 4, 0, 5},{2, 3, 0, 7, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG7[7][5] = {{3, 10, 2, 0, 0},{4, 0, 8, 3, 7},{4, 5, 10, 2, 4},{0, 0, 0, 2, 4},{6, 5, 0, 0, 0},{6, 3, 10, 1, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG7[7][5] = {{2, 9, 6, 1, 4},{10, 12, 7, 7, 6},{8, 0, 8, 1, 3},{10, 3, 10, 0, 0},{3, 12, 0, 1, 1},{11, 5, 12, 2, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG7[7][5] = {{2, 11, 6, 4, 9},{11, 1, 5, 9, 3},{14, 10, 4, 2, 10},{2, 5, 0, 5, 8},{1, 10, 8, 12, 7},{3, 9, 5, 1, 4},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG7[7][5] = {{0, 2, 0, 2, 0},{0, 1, 2, 3, 0},{3, 3, 1, 2, 1},{3, 0, 0, 3, 3},{3, 1, 2, 0, 3},{0, 2, 3, 1, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG7[7][5] = {{3, 5, 5, 4, 1},{2, 3, 0, 2, 2},{4, 4, 0, 5, 0},{3, 3, 4, 5, 0},{2, 5, 2, 5, 1},{0, 0, 2, 0, 5},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG7[7][5] = {{2, 4, 9, 8, 9},{8, 0, 5, 9, 0},{7, 1, 9, 4, 0},{0, 5, 8, 1, 0},{5, 1, 5, 9, 4},{6, 1, 2, 8, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG7[7][5] = {{3, 12, 2, 0, 6},{6, 11, 7, 7, 8},{6, 6, 10, 1, 5},{2, 5, 3, 9, 13},{10, 12, 0, 9, 13},{4, 5, 0, 1, 11},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG7[7][5] = {{7, 16, 9, 0, 8},{9, 1, 0, 6, 0},{10, 10, 10, 1, 3},{4, 15, 7, 16, 0},{14, 0, 4, 0, 14},{2, 3, 9, 7, 10},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG7[7][5] = {{3, 21, 13, 0, 0},{15, 11, 19, 14, 18},{4, 5, 10, 13, 15},{11, 11, 0, 2, 15},{17, 5, 0, 0, 0},{17, 3, 10, 12, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG7[7][5] = {{15, 22, 6, 1, 17},{10, 25, 20, 20, 6},{8, 0, 21, 14, 3},{23, 16, 23, 0, 0},{3, 12, 0, 1, 1},{24, 18, 25, 2, 20},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG7[7][5] = {{17, 26, 6, 4, 9},{26, 1, 5, 24, 18},{29, 10, 4, 2, 10},{2, 20, 0, 5, 23},{16, 25, 8, 12, 22},{18, 24, 20, 16, 19},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG7[7][5] = {{4, 2, 0, 6, 0},{4, 5, 2, 7, 0},{7, 7, 5, 6, 1},{7, 0, 0, 7, 7},{7, 1, 2, 0, 3},{0, 2, 7, 5, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG7[7][5] = {{9, 5, 5, 10, 1},{2, 3, 6, 8, 2},{4, 10, 6, 5, 6},{9, 3, 4, 5, 6},{2, 11, 2, 11, 7},{6, 6, 2, 0, 5},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG7[7][5] = {{12, 14, 9, 18, 9},{8, 0, 15, 19, 10},{7, 11, 9, 14, 0},{10, 15, 8, 1, 10},{5, 1, 5, 19, 4},{16, 11, 12, 18, 11},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG7[7][5] = {{17, 26, 2, 14, 6},{20, 25, 7, 7, 8},{20, 6, 24, 15, 19},{16, 19, 3, 23, 13},{10, 26, 0, 23, 13},{18, 19, 14, 15, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG7[7][5] = {{25, 34, 9, 0, 26},{9, 1, 18, 6, 0},{10, 28, 28, 1, 3},{4, 15, 7, 16, 0},{32, 18, 22, 0, 32},{20, 21, 27, 7, 28},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG7[7][5] = {{3, 43, 35, 22, 0},{15, 33, 41, 14, 40},{4, 27, 10, 13, 15},{33, 11, 22, 24, 37},{39, 5, 0, 22, 0},{39, 3, 32, 34, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG7[7][5] = {{41, 22, 6, 1, 17},{36, 25, 20, 46, 6},{8, 0, 47, 14, 29},{49, 16, 49, 26, 26},{3, 12, 0, 1, 1},{24, 18, 51, 2, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG7[7][5] = {{17, 56, 6, 4, 39},{26, 31, 35, 24, 18},{29, 10, 4, 2, 40},{32, 50, 0, 35, 53},{46, 55, 38, 12, 22},{18, 24, 20, 16, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG7[7][5] = {{12, 2, 0, 14, 8},{12, 5, 10, 7, 0},{15, 7, 5, 14, 1},{15, 0, 0, 15, 15},{7, 1, 10, 0, 11},{8, 10, 7, 5, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG7[7][5] = {{9, 5, 5, 22, 1},{14, 3, 18, 8, 2},{4, 10, 6, 17, 18},{21, 15, 16, 17, 6},{2, 23, 2, 11, 7},{18, 18, 2, 12, 5},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG7[7][5] = {{12, 14, 29, 38, 29},{8, 0, 35, 19, 10},{7, 11, 9, 14, 20},{10, 35, 8, 21, 10},{25, 1, 25, 19, 24},{36, 31, 12, 18, 11},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG7[7][5] = {{17, 26, 30, 14, 34},{20, 53, 7, 7, 8},{48, 6, 24, 43, 19},{44, 19, 3, 23, 41},{38, 26, 28, 51, 41},{46, 47, 14, 43, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG7[7][5] = {{25, 34, 9, 0, 26},{45, 1, 18, 42, 0},{10, 28, 28, 37, 39},{40, 51, 7, 16, 36},{32, 18, 22, 0, 68},{20, 57, 27, 7, 64},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG7[7][5] = {{3, 87, 35, 22, 0},{15, 77, 41, 58, 84},{48, 27, 54, 13, 15},{33, 55, 22, 68, 81},{39, 49, 0, 66, 0},{39, 3, 76, 78, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG7[7][5] = {{41, 22, 6, 1, 69},{88, 77, 20, 98, 6},{8, 52, 99, 14, 81},{49, 16, 49, 26, 78},{55, 12, 0, 1, 53},{76, 70, 103, 2, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG7[7][5] = {{77, 116, 66, 4, 39},{26, 31, 95, 24, 18},{89, 70, 4, 62, 100},{32, 110, 60, 95, 53},{46, 115, 98, 72, 22},{18, 84, 80, 76, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG7[7][5] = {{28, 2, 0, 14, 8},{12, 21, 10, 23, 0},{31, 7, 21, 14, 1},{31, 0, 0, 31, 31},{7, 17, 10, 16, 11},{8, 26, 7, 5, 19},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG7[7][5] = {{9, 5, 29, 46, 1},{14, 3, 42, 8, 2},{28, 34, 30, 41, 18},{45, 15, 40, 41, 30},{2, 47, 2, 11, 7},{18, 18, 26, 12, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG7[7][5] = {{12, 14, 69, 78, 69},{8, 0, 75, 59, 50},{47, 51, 9, 54, 60},{50, 75, 48, 61, 50},{25, 1, 25, 19, 24},{76, 71, 52, 18, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG7[7][5] = {{17, 82, 30, 14, 90},{76, 53, 63, 63, 8},{104, 62, 24, 99, 19},{100, 19, 3, 79, 97},{38, 82, 28, 51, 97},{46, 103, 70, 43, 81},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG7[7][5] = {{25, 34, 81, 0, 26},{45, 1, 18, 42, 0},{10, 28, 100, 109, 39},{40, 123, 7, 16, 108},{104, 90, 94, 0, 68},{20, 57, 99, 79, 64},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG7[7][5] = {{3, 175, 123, 22, 0},{103, 77, 41, 146, 172},{48, 27, 142, 101, 15},{121, 55, 110, 156, 81},{39, 49, 0, 66, 0},{39, 91, 76, 78, 113},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG7[7][5] = {{145, 126, 6, 1, 173},{88, 77, 20, 202, 6},{112, 156, 203, 118, 81},{153, 16, 153, 130, 182},{159, 12, 104, 1, 53},{76, 70, 207, 2, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG7[7][5] = {{77, 116, 186, 124, 39},{146, 151, 215, 144, 138},{209, 70, 124, 182, 220},{32, 230, 180, 95, 173},{166, 115, 98, 72, 142},{18, 84, 80, 76, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG7[7][5] = {{28, 34, 32, 14, 40},{44, 21, 42, 55, 32},{31, 39, 21, 14, 1},{31, 32, 32, 63, 63},{39, 49, 42, 16, 11},{40, 58, 7, 37, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG7[7][5] = {{9, 5, 77, 46, 49},{62, 51, 90, 56, 2},{28, 82, 78, 41, 18},{45, 15, 40, 89, 30},{2, 95, 50, 59, 55},{18, 66, 74, 12, 77},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG7[7][5] = {{12, 14, 69, 78, 69},{88, 80, 75, 139, 130},{47, 51, 9, 54, 60},{50, 75, 48, 61, 130},{25, 1, 105, 19, 24},{76, 151, 52, 98, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG7[7][5] = {{17, 82, 142, 14, 90},{76, 165, 175, 175, 120},{104, 174, 136, 211, 131},{100, 19, 3, 191, 209},{150, 194, 28, 51, 209},{158, 103, 182, 43, 81},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG7[7][5] = {{169, 178, 225, 0, 170},{189, 1, 162, 186, 0},{154, 28, 244, 253, 183},{184, 267, 151, 16, 108},{104, 234, 238, 0, 68},{164, 201, 243, 79, 64},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG7[7][5] = {{3, 175, 123, 22, 176},{103, 253, 217, 322, 348},{224, 27, 142, 277, 15},{297, 231, 110, 156, 81},{215, 49, 176, 66, 176},{39, 267, 76, 78, 113},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG7[7][5] = {{92, 98, 32, 78, 40},{44, 21, 42, 55, 96},{31, 39, 21, 78, 65},{31, 32, 32, 127, 63},{39, 49, 106, 16, 75},{104, 58, 7, 101, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG7[7][5] = {{9, 101, 77, 142, 49},{62, 147, 186, 56, 2},{124, 82, 174, 137, 18},{141, 111, 40, 89, 126},{98, 191, 50, 155, 55},{114, 162, 74, 12, 77},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG7[7][5] = {{12, 14, 229, 78, 229},{88, 80, 235, 299, 290},{207, 211, 169, 54, 60},{50, 75, 48, 61, 130},{25, 161, 105, 179, 184},{76, 311, 52, 258, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG7[7][5] = {{220, 98, 160, 206, 40},{44, 149, 42, 55, 96},{159, 167, 21, 206, 65},{31, 160, 32, 127, 63},{167, 49, 234, 16, 75},{104, 58, 7, 229, 179},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG7[7][5] = {{9, 101, 77, 142, 241},{62, 339, 186, 248, 2},{316, 274, 174, 137, 210},{333, 111, 232, 89, 318},{290, 383, 50, 347, 55},{114, 354, 74, 12, 269},{0, 0, 0, 0, 0}}; - -// Group of CNs with 8 BNs (CNG8) ->[Num BNs][Num of CN with 8 BNs] -static const uint16_t circShift_BG1_Z2_CNG8[8][2] = {{1, 1},{0, 1},{0, 1},{1, 0},{0, 0},{1, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG8[8][2] = {{0, 0},{2, 0},{1, 2},{1, 2},{1, 2},{0, 1},{1, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG8[8][2] = {{3, 1},{2, 2},{0, 0},{3, 4},{1, 2},{2, 3},{4, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG8[8][2] = {{3, 3},{3, 4},{2, 2},{3, 0},{0, 4},{4, 0},{6, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG8[8][2] = {{0, 1},{1, 5},{0, 4},{4, 1},{2, 3},{7, 3},{0, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG8[8][2] = {{10, 3},{9, 3},{9, 2},{3, 10},{9, 1},{5, 8},{8, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG8[8][2] = {{3, 2},{9, 12},{11, 6},{0, 3},{12, 0},{5, 5},{7, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG8[8][2] = {{2, 0},{6, 10},{2, 14},{8, 1},{0, 2},{0, 0},{0, 2},{0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG8[8][2] = {{1, 1},{0, 1},{2, 3},{3, 2},{0, 2},{3, 0},{3, 2},{0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG8[8][2] = {{3, 0},{2, 0},{1, 2},{4, 5},{1, 2},{3, 4},{1, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG8[8][2] = {{3, 6},{2, 7},{0, 0},{8, 9},{1, 7},{7, 3},{9, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG8[8][2] = {{10, 10},{3, 11},{2, 2},{10, 7},{0, 4},{4, 0},{13, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG8[8][2] = {{9, 1},{1, 5},{0, 4},{13, 1},{2, 3},{7, 3},{0, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG8[8][2] = {{21, 3},{20, 14},{9, 2},{14, 21},{9, 12},{16, 8},{19, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG8[8][2] = {{3, 2},{22, 12},{24, 19},{13, 16},{25, 0},{5, 5},{20, 20},{0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG8[8][2] = {{2, 15},{21, 25},{17, 14},{23, 1},{0, 2},{0, 15},{0, 17},{0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG8[8][2] = {{5, 5},{4, 1},{2, 3},{7, 6},{4, 6},{3, 4},{3, 6},{0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG8[8][2] = {{3, 0},{2, 6},{7, 8},{10, 11},{1, 8},{3, 10},{1, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG8[8][2] = {{3, 16},{12, 7},{10, 10},{18, 9},{1, 17},{7, 3},{19, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG8[8][2] = {{24, 24},{3, 11},{2, 2},{24, 7},{14, 4},{18, 0},{13, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG8[8][2] = {{9, 19},{1, 23},{0, 22},{31, 1},{2, 21},{7, 3},{0, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG8[8][2] = {{43, 25},{42, 14},{31, 24},{14, 43},{31, 34},{38, 30},{19, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG8[8][2] = {{29, 28},{48, 38},{24, 19},{13, 16},{51, 0},{5, 5},{20, 20},{0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG8[8][2] = {{2, 45},{51, 55},{47, 14},{23, 1},{30, 32},{0, 45},{0, 47},{0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG8[8][2] = {{13, 13},{12, 9},{2, 3},{7, 6},{12, 14},{11, 12},{3, 6},{0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG8[8][2] = {{3, 0},{14, 6},{19, 8},{22, 23},{1, 20},{3, 22},{13, 19},{0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG8[8][2] = {{3, 16},{12, 27},{10, 10},{38, 9},{1, 17},{27, 3},{39, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG8[8][2] = {{52, 52},{3, 11},{30, 2},{24, 35},{14, 32},{18, 28},{41, 33},{0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG8[8][2] = {{45, 55},{37, 23},{0, 58},{67, 37},{38, 57},{7, 39},{0, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG8[8][2] = {{43, 25},{42, 58},{75, 24},{58, 87},{31, 78},{82, 74},{19, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG8[8][2] = {{81, 80},{100, 90},{24, 19},{65, 16},{103, 0},{57, 5},{72, 20},{0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG8[8][2] = {{2, 45},{51, 115},{47, 14},{23, 1},{90, 32},{60, 45},{60, 107},{0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG8[8][2] = {{13, 13},{12, 9},{2, 19},{7, 22},{28, 14},{27, 28},{19, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG8[8][2] = {{3, 0},{14, 6},{19, 8},{22, 47},{1, 44},{3, 46},{13, 19},{0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG8[8][2] = {{3, 16},{52, 67},{50, 50},{78, 49},{41, 17},{27, 43},{39, 40},{0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG8[8][2] = {{52, 52},{59, 11},{86, 2},{80, 35},{70, 32},{18, 84},{41, 89},{0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG8[8][2] = {{117, 55},{37, 23},{72, 130},{139, 37},{110, 129},{79, 39},{0, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG8[8][2] = {{43, 25},{130, 146},{75, 24},{146, 175},{119, 166},{82, 162},{107, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG8[8][2] = {{185, 184},{100, 194},{24, 123},{65, 16},{207, 104},{161, 109},{72, 124},{0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG8[8][2] = {{2, 45},{171, 115},{47, 134},{143, 1},{210, 152},{180, 165},{180, 107},{0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG8[8][2] = {{13, 13},{44, 41},{2, 19},{39, 54},{28, 14},{59, 60},{51, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG8[8][2] = {{3, 48},{14, 6},{19, 8},{70, 47},{49, 92},{51, 46},{61, 19},{0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG8[8][2] = {{83, 16},{132, 147},{50, 130},{158, 129},{41, 17},{107, 43},{119, 120},{0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG8[8][2] = {{164, 52},{59, 11},{86, 2},{80, 35},{182, 32},{130, 84},{153, 201},{0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG8[8][2] = {{261, 55},{181, 23},{72, 274},{283, 181},{254, 273},{79, 39},{144, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG8[8][2] = {{219, 25},{130, 322},{251, 200},{322, 351},{295, 166},{258, 338},{283, 192},{0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG8[8][2] = {{77, 77},{108, 41},{66, 83},{103, 54},{28, 78},{123, 124},{115, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG8[8][2] = {{3, 48},{14, 102},{115, 8},{166, 47},{49, 188},{51, 142},{157, 115},{0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG8[8][2] = {{83, 16},{292, 147},{50, 290},{318, 289},{201, 177},{267, 43},{279, 280},{0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG8[8][2] = {{205, 77},{236, 41},{194, 83},{231, 182},{28, 78},{123, 252},{115, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG8[8][2] = {{195, 48},{14, 102},{115, 8},{166, 47},{241, 188},{51, 334},{157, 115},{0, 0}}; - -// Group of CNs with 9 BNs (CNG9) ->[Num BNs][Num of CN with 9 BNs] -static const uint16_t circShift_BG1_Z2_CNG9[9][2] = {{1, 1},{0, 0},{0, 1},{1, 1},{0, 0},{1, 0},{1, 1},{1, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG9[9][2] = {{2, 0},{2, 1},{1, 0},{0, 1},{2, 0},{1, 0},{0, 0},{0, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG9[9][2] = {{4, 4},{1, 4},{3, 1},{3, 1},{2, 1},{2, 2},{3, 0},{0, 4},{0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG9[9][2] = {{4, 2},{0, 2},{1, 3},{0, 0},{0, 5},{2, 3},{3, 4},{4, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG9[9][2] = {{8, 0},{0, 6},{7, 3},{0, 8},{5, 0},{6, 6},{7, 4},{0, 2},{0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG9[9][2] = {{8, 2},{7, 0},{0, 7},{0, 1},{7, 4},{7, 9},{9, 1},{8, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG9[9][2] = {{6, 6},{1, 10},{7, 2},{11, 1},{9, 6},{11, 4},{12, 8},{0, 4},{0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG9[9][2] = {{4, 4},{7, 12},{8, 11},{10, 11},{2, 2},{12, 2},{7, 2},{13, 10},{0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG9[9][2] = {{3, 3},{2, 2},{0, 1},{3, 1},{0, 2},{3, 2},{1, 1},{3, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG9[9][2] = {{2, 0},{5, 4},{1, 3},{3, 1},{2, 3},{1, 3},{0, 3},{3, 4},{0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG9[9][2] = {{9, 9},{1, 4},{3, 6},{3, 6},{2, 1},{2, 7},{8, 5},{5, 9},{0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG9[9][2] = {{4, 9},{7, 9},{1, 3},{7, 7},{7, 5},{9, 3},{10, 11},{4, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG9[9][2] = {{8, 0},{0, 15},{7, 3},{0, 8},{5, 9},{15, 6},{7, 4},{0, 11},{0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG9[9][2] = {{8, 2},{7, 0},{0, 7},{11, 1},{18, 4},{18, 20},{20, 1},{19, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG9[9][2] = {{6, 6},{1, 10},{7, 15},{24, 1},{22, 19},{24, 4},{12, 8},{13, 17},{0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG9[9][2] = {{19, 19},{22, 12},{23, 26},{10, 11},{2, 17},{27, 2},{22, 2},{13, 25},{0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG9[9][2] = {{7, 7},{6, 6},{4, 5},{3, 5},{4, 6},{3, 6},{5, 5},{3, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG9[9][2] = {{2, 6},{5, 4},{1, 9},{3, 1},{8, 9},{1, 3},{6, 3},{9, 10},{0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG9[9][2] = {{9, 9},{1, 4},{13, 16},{13, 6},{12, 11},{2, 7},{18, 15},{15, 9},{0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG9[9][2] = {{18, 9},{7, 9},{1, 17},{21, 21},{7, 5},{23, 17},{24, 25},{4, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG9[9][2] = {{8, 18},{0, 15},{25, 21},{18, 26},{23, 9},{33, 24},{7, 4},{0, 29},{0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG9[9][2] = {{30, 24},{29, 0},{22, 29},{11, 23},{40, 4},{18, 20},{20, 23},{41, 29},{0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG9[9][2] = {{6, 6},{27, 10},{7, 41},{50, 1},{48, 45},{24, 4},{38, 8},{39, 17},{0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG9[9][2] = {{19, 49},{22, 12},{23, 26},{40, 41},{32, 17},{27, 32},{52, 32},{13, 25},{0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG9[9][2] = {{7, 7},{6, 6},{12, 13},{3, 5},{4, 14},{11, 14},{13, 13},{3, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG9[9][2] = {{14, 6},{17, 16},{1, 9},{15, 13},{20, 9},{13, 15},{18, 15},{9, 10},{0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG9[9][2] = {{9, 29},{21, 4},{13, 36},{13, 6},{32, 31},{22, 27},{18, 15},{35, 9},{0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG9[9][2] = {{46, 9},{7, 37},{1, 45},{21, 49},{7, 33},{51, 17},{24, 53},{4, 50},{0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG9[9][2] = {{8, 18},{0, 15},{25, 21},{18, 62},{59, 45},{33, 60},{7, 4},{36, 65},{0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG9[9][2] = {{30, 68},{73, 0},{66, 29},{11, 23},{84, 4},{62, 64},{20, 23},{41, 73},{0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG9[9][2] = {{6, 6},{27, 10},{59, 41},{50, 53},{48, 97},{24, 4},{38, 60},{91, 69},{0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG9[9][2] = {{79, 49},{22, 12},{23, 86},{100, 101},{92, 17},{87, 92},{52, 92},{13, 85},{0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG9[9][2] = {{23, 7},{22, 22},{28, 13},{3, 21},{20, 14},{11, 14},{29, 29},{19, 24},{0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG9[9][2] = {{38, 30},{17, 40},{1, 33},{15, 37},{44, 9},{13, 15},{18, 15},{33, 34},{0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG9[9][2] = {{49, 29},{21, 4},{53, 36},{13, 46},{72, 71},{62, 27},{58, 55},{75, 49},{0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG9[9][2] = {{46, 9},{7, 37},{1, 101},{21, 105},{63, 89},{51, 73},{24, 109},{4, 106},{0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG9[9][2] = {{80, 18},{0, 15},{25, 93},{90, 134},{59, 45},{33, 132},{7, 76},{108, 65},{0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG9[9][2] = {{118, 156},{73, 88},{154, 117},{99, 111},{172, 92},{150, 152},{108, 23},{129, 161},{0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG9[9][2] = {{6, 6},{27, 10},{163, 145},{50, 53},{48, 201},{24, 4},{38, 164},{91, 173},{0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG9[9][2] = {{199, 169},{22, 12},{23, 206},{100, 221},{92, 17},{207, 212},{52, 92},{13, 205},{0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG9[9][2] = {{55, 39},{22, 54},{28, 45},{3, 21},{52, 14},{11, 14},{29, 61},{19, 24},{0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG9[9][2] = {{86, 78},{65, 40},{1, 33},{63, 37},{92, 57},{61, 15},{18, 63},{33, 82},{0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG9[9][2] = {{129, 29},{21, 84},{133, 36},{13, 126},{72, 151},{142, 107},{138, 135},{75, 49},{0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG9[9][2] = {{158, 9},{119, 37},{113, 213},{21, 105},{63, 89},{51, 185},{136, 109},{116, 218},{0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG9[9][2] = {{80, 162},{144, 159},{169, 93},{90, 134},{59, 45},{177, 132},{151, 76},{108, 209},{0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG9[9][2] = {{294, 156},{73, 88},{330, 293},{99, 111},{172, 92},{150, 152},{284, 23},{305, 337},{0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG9[9][2] = {{55, 103},{22, 54},{28, 109},{67, 21},{116, 14},{11, 14},{29, 61},{83, 88},{0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG9[9][2] = {{86, 174},{65, 40},{1, 129},{159, 133},{92, 57},{61, 111},{18, 63},{33, 82},{0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG9[9][2] = {{289, 189},{21, 244},{293, 36},{13, 286},{232, 151},{302, 267},{138, 135},{235, 209},{0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG9[9][2] = {{183, 103},{22, 182},{28, 109},{67, 21},{244, 142},{11, 14},{157, 61},{211, 216},{0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG9[9][2] = {{278, 366},{257, 232},{1, 321},{351, 133},{92, 57},{253, 303},{18, 63},{225, 82},{0, 0}}; - -// Group of CNs with 10 BNs (CNG10) ->[Num BNs][Num of CN with 10 BNs] -static const uint16_t circShift_BG1_Z2_CNG10[10][1] = {{0},{0},{1},{1},{0},{0},{1},{1},{0},{0}}; -static const uint16_t circShift_BG1_Z3_CNG10[10][1] = {{1},{2},{0},{0},{0},{2},{2},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z5_CNG10[10][1] = {{0},{3},{0},{1},{1},{0},{4},{0},{4},{0}}; -static const uint16_t circShift_BG1_Z7_CNG10[10][1] = {{5},{4},{4},{0},{1},{4},{2},{2},{5},{0}}; -static const uint16_t circShift_BG1_Z9_CNG10[10][1] = {{0},{0},{0},{5},{8},{1},{6},{5},{0},{0}}; -static const uint16_t circShift_BG1_Z11_CNG10[10][1] = {{7},{9},{0},{4},{4},{6},{4},{6},{2},{0}}; -static const uint16_t circShift_BG1_Z13_CNG10[10][1] = {{3},{2},{1},{11},{5},{8},{10},{9},{12},{0}}; -static const uint16_t circShift_BG1_Z15_CNG10[10][1] = {{1},{0},{6},{13},{12},{10},{4},{3},{8},{0}}; -static const uint16_t circShift_BG1_Z4_CNG10[10][1] = {{0},{0},{3},{3},{2},{0},{1},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z6_CNG10[10][1] = {{1},{5},{3},{0},{3},{2},{2},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z10_CNG10[10][1] = {{5},{3},{0},{1},{6},{0},{9},{5},{4},{0}}; -static const uint16_t circShift_BG1_Z14_CNG10[10][1] = {{5},{11},{4},{7},{8},{11},{2},{2},{5},{0}}; -static const uint16_t circShift_BG1_Z18_CNG10[10][1] = {{0},{0},{0},{5},{8},{10},{15},{14},{0},{0}}; -static const uint16_t circShift_BG1_Z22_CNG10[10][1] = {{18},{9},{0},{4},{4},{17},{15},{6},{2},{0}}; -static const uint16_t circShift_BG1_Z26_CNG10[10][1] = {{16},{2},{1},{11},{18},{21},{23},{9},{12},{0}}; -static const uint16_t circShift_BG1_Z30_CNG10[10][1] = {{1},{15},{21},{13},{27},{25},{19},{3},{8},{0}}; -static const uint16_t circShift_BG1_Z8_CNG10[10][1] = {{0},{4},{7},{3},{6},{4},{5},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z12_CNG10[10][1] = {{7},{11},{9},{6},{3},{8},{8},{7},{2},{0}}; -static const uint16_t circShift_BG1_Z20_CNG10[10][1] = {{15},{13},{10},{11},{16},{10},{9},{5},{14},{0}}; -static const uint16_t circShift_BG1_Z28_CNG10[10][1] = {{5},{11},{4},{21},{8},{11},{2},{16},{5},{0}}; -static const uint16_t circShift_BG1_Z36_CNG10[10][1] = {{18},{0},{0},{5},{26},{10},{15},{14},{18},{0}}; -static const uint16_t circShift_BG1_Z44_CNG10[10][1] = {{40},{31},{22},{4},{4},{17},{15},{6},{24},{0}}; -static const uint16_t circShift_BG1_Z52_CNG10[10][1] = {{16},{2},{27},{37},{44},{47},{49},{35},{12},{0}}; -static const uint16_t circShift_BG1_Z60_CNG10[10][1] = {{1},{45},{21},{43},{57},{25},{19},{33},{38},{0}}; -static const uint16_t circShift_BG1_Z16_CNG10[10][1] = {{0},{4},{7},{3},{6},{4},{13},{1},{10},{0}}; -static const uint16_t circShift_BG1_Z24_CNG10[10][1] = {{19},{11},{21},{18},{15},{8},{8},{19},{2},{0}}; -static const uint16_t circShift_BG1_Z40_CNG10[10][1] = {{15},{13},{10},{31},{16},{30},{29},{5},{34},{0}}; -static const uint16_t circShift_BG1_Z56_CNG10[10][1] = {{33},{39},{4},{49},{36},{39},{2},{44},{33},{0}}; -static const uint16_t circShift_BG1_Z72_CNG10[10][1] = {{54},{0},{36},{41},{26},{46},{15},{14},{54},{0}}; -static const uint16_t circShift_BG1_Z88_CNG10[10][1] = {{84},{75},{22},{48},{48},{17},{59},{50},{68},{0}}; -static const uint16_t circShift_BG1_Z104_CNG10[10][1] = {{68},{2},{27},{37},{96},{99},{101},{35},{12},{0}}; -static const uint16_t circShift_BG1_Z120_CNG10[10][1] = {{61},{105},{21},{103},{57},{25},{79},{33},{38},{0}}; -static const uint16_t circShift_BG1_Z32_CNG10[10][1] = {{16},{4},{7},{19},{6},{4},{13},{17},{26},{0}}; -static const uint16_t circShift_BG1_Z48_CNG10[10][1] = {{19},{35},{21},{18},{39},{32},{32},{19},{26},{0}}; -static const uint16_t circShift_BG1_Z80_CNG10[10][1] = {{55},{53},{50},{71},{56},{30},{29},{5},{74},{0}}; -static const uint16_t circShift_BG1_Z112_CNG10[10][1] = {{33},{95},{4},{105},{92},{39},{58},{44},{89},{0}}; -static const uint16_t circShift_BG1_Z144_CNG10[10][1] = {{54},{0},{108},{41},{98},{46},{15},{86},{54},{0}}; -static const uint16_t circShift_BG1_Z176_CNG10[10][1] = {{172},{75},{22},{136},{48},{17},{59},{138},{68},{0}}; -static const uint16_t circShift_BG1_Z208_CNG10[10][1] = {{172},{2},{131},{141},{96},{99},{101},{35},{116},{0}}; -static const uint16_t circShift_BG1_Z240_CNG10[10][1] = {{181},{105},{141},{223},{177},{145},{199},{153},{38},{0}}; -static const uint16_t circShift_BG1_Z64_CNG10[10][1] = {{48},{4},{7},{19},{38},{36},{45},{49},{26},{0}}; -static const uint16_t circShift_BG1_Z96_CNG10[10][1] = {{19},{83},{69},{18},{39},{32},{80},{67},{74},{0}}; -static const uint16_t circShift_BG1_Z160_CNG10[10][1] = {{135},{133},{130},{71},{136},{110},{109},{85},{154},{0}}; -static const uint16_t circShift_BG1_Z224_CNG10[10][1] = {{33},{95},{4},{217},{204},{39},{58},{44},{201},{0}}; -static const uint16_t circShift_BG1_Z288_CNG10[10][1] = {{54},{0},{252},{41},{98},{46},{15},{230},{54},{0}}; -static const uint16_t circShift_BG1_Z352_CNG10[10][1] = {{348},{75},{22},{312},{224},{17},{59},{314},{244},{0}}; -static const uint16_t circShift_BG1_Z128_CNG10[10][1] = {{112},{4},{7},{83},{102},{36},{109},{113},{90},{0}}; -static const uint16_t circShift_BG1_Z192_CNG10[10][1] = {{115},{179},{165},{18},{39},{32},{176},{67},{170},{0}}; -static const uint16_t circShift_BG1_Z320_CNG10[10][1] = {{295},{133},{130},{231},{296},{110},{269},{245},{154},{0}}; -static const uint16_t circShift_BG1_Z256_CNG10[10][1] = {{112},{4},{7},{211},{102},{164},{109},{241},{90},{0}}; -static const uint16_t circShift_BG1_Z384_CNG10[10][1] = {{307},{179},{165},{18},{39},{224},{368},{67},{170},{0}}; - -// Group of CNs with 19 BNs (CNG19) ->[Num BNs][Num of CN with 19 BNs] -static const uint16_t circShift_BG1_Z2_CNG19[19][4] = {{0, 0, 0, 1},{1, 1, 1, 1},{0, 1, 1, 0},{1, 0, 1, 0},{0, 1, 1, 0},{0, 0, 1, 1},{1, 0, 1, 1},{1, 1, 1, 0},{0, 0, 1, 0},{1, 0, 1, 0},{1, 1, 0, 1},{1, 0, 1, 1},{1, 0, 1, 0},{0, 1, 1, 0},{1, 1, 1, 0},{1, 0, 1, 0},{1, 0, 1, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG19[19][4] = {{1, 1, 1, 0},{1, 1, 1, 0},{2, 1, 1, 0},{0, 0, 2, 2},{1, 0, 1, 1},{0, 1, 2, 0},{2, 1, 0, 2},{0, 1, 1, 0},{1, 1, 0, 2},{2, 0, 0, 0},{0, 1, 2, 2},{2, 0, 1, 2},{1, 0, 2, 1},{2, 0, 2, 0},{0, 1, 0, 1},{0, 1, 1, 0},{1, 0, 1, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG19[19][4] = {{3, 3, 3, 0},{0, 4, 2, 3},{3, 2, 0, 0},{4, 1, 0, 2},{0, 1, 3, 1},{4, 3, 2, 0},{0, 4, 2, 4},{2, 0, 0, 1},{0, 4, 1, 3},{4, 0, 1, 3},{3, 1, 0, 4},{3, 1, 3, 3},{0, 2, 1, 4},{3, 3, 4, 3},{1, 0, 1, 2},{4, 1, 0, 4},{2, 0, 1, 3},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG19[19][4] = {{6, 1, 4, 5},{2, 3, 0, 4},{3, 4, 3, 4},{0, 4, 1, 5},{4, 0, 5, 3},{3, 3, 4, 2},{0, 0, 4, 2},{2, 3, 6, 6},{6, 3, 2, 1},{0, 2, 0, 3},{5, 2, 0, 0},{0, 2, 4, 6},{0, 6, 0, 5},{1, 5, 2, 4},{2, 3, 5, 1},{6, 5, 6, 2},{4, 0, 6, 4},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG19[19][4] = {{4, 8, 6, 7},{0, 0, 5, 1},{8, 7, 4, 4},{6, 4, 7, 0},{3, 7, 0, 1},{4, 4, 4, 6},{2, 4, 2, 8},{0, 0, 0, 5},{8, 1, 0, 0},{0, 6, 3, 3},{7, 0, 2, 0},{8, 8, 4, 7},{0, 5, 0, 8},{5, 3, 0, 3},{0, 3, 8, 0},{1, 2, 2, 5},{0, 0, 0, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG19[19][4] = {{8, 0, 6, 9},{8, 5, 2, 6},{2, 8, 4, 5},{0, 8, 5, 4},{9, 4, 1, 7},{0, 2, 1, 1},{1, 5, 7, 3},{8, 6, 6, 7},{1, 2, 8, 4},{9, 0, 6, 4},{3, 4, 0, 5},{9, 0, 0, 9},{6, 4, 4, 7},{7, 1, 10, 6},{2, 9, 9, 0},{3, 5, 1, 0},{1, 0, 7, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG19[19][4] = {{0, 9, 2, 4},{0, 11, 11, 6},{0, 7, 8, 7},{0, 0, 11, 9},{0, 10, 4, 10},{0, 0, 6, 8},{0, 0, 9, 6},{0, 2, 12, 8},{0, 3, 5, 5},{0, 8, 0, 11},{0, 0, 12, 9},{0, 6, 2, 5},{0, 4, 7, 1},{0, 0, 8, 4},{0, 12, 10, 3},{0, 5, 3, 2},{0, 1, 1, 12},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG19[19][4] = {{0, 6, 9, 8},{2, 11, 4, 8},{6, 1, 0, 12},{14, 11, 1, 10},{9, 8, 11, 13},{8, 2, 12, 6},{8, 7, 14, 6},{0, 11, 2, 1},{10, 11, 9, 6},{8, 9, 8, 7},{0, 5, 6, 9},{0, 10, 11, 2},{7, 3, 3, 5},{10, 12, 6, 2},{0, 13, 5, 10},{0, 6, 7, 7},{2, 0, 5, 9},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG19[19][4] = {{2, 2, 2, 1},{1, 3, 3, 1},{2, 1, 1, 0},{3, 0, 3, 0},{0, 3, 1, 2},{2, 2, 1, 3},{3, 0, 1, 3},{1, 1, 1, 0},{2, 0, 3, 2},{3, 2, 3, 2},{1, 1, 2, 3},{3, 0, 1, 3},{3, 2, 1, 0},{2, 3, 1, 0},{3, 3, 1, 0},{3, 0, 3, 0},{3, 0, 1, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG19[19][4] = {{1, 4, 1, 0},{1, 4, 4, 3},{2, 1, 4, 0},{3, 0, 2, 5},{1, 0, 4, 1},{0, 1, 5, 3},{5, 1, 3, 2},{0, 4, 4, 0},{1, 1, 3, 5},{5, 0, 3, 3},{3, 1, 2, 5},{5, 3, 4, 2},{4, 0, 5, 4},{2, 0, 5, 0},{0, 1, 0, 1},{0, 4, 1, 3},{4, 0, 1, 3},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG19[19][4] = {{3, 3, 8, 0},{5, 4, 7, 8},{3, 7, 0, 0},{9, 1, 0, 7},{0, 1, 8, 1},{9, 3, 7, 5},{5, 4, 2, 9},{2, 0, 0, 1},{5, 9, 1, 3},{4, 0, 6, 3},{3, 6, 5, 4},{8, 6, 3, 3},{0, 2, 1, 4},{3, 3, 4, 8},{6, 0, 6, 7},{9, 1, 0, 9},{2, 0, 6, 8},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG19[19][4] = {{13, 1, 11, 5},{2, 3, 7, 4},{10, 11, 3, 11},{7, 4, 8, 5},{4, 7, 12, 3},{10, 3, 4, 2},{0, 7, 11, 2},{9, 3, 13, 6},{6, 10, 9, 1},{7, 9, 0, 3},{5, 9, 7, 7},{0, 9, 4, 13},{0, 6, 7, 12},{1, 12, 2, 4},{2, 3, 5, 1},{6, 5, 13, 2},{11, 0, 6, 4},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG19[19][4] = {{13, 17, 6, 7},{0, 0, 5, 1},{8, 7, 4, 4},{6, 4, 7, 0},{3, 16, 9, 10},{4, 4, 4, 6},{11, 4, 2, 17},{0, 9, 9, 5},{8, 1, 0, 0},{0, 15, 3, 3},{7, 0, 2, 0},{17, 8, 13, 7},{0, 14, 0, 8},{5, 3, 0, 3},{0, 12, 17, 0},{1, 11, 2, 5},{9, 0, 0, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG19[19][4] = {{8, 11, 6, 9},{8, 5, 13, 6},{13, 8, 15, 5},{0, 8, 16, 15},{9, 4, 1, 7},{11, 2, 1, 12},{1, 16, 18, 3},{8, 6, 17, 18},{1, 13, 8, 4},{9, 11, 17, 15},{3, 4, 0, 5},{9, 0, 0, 9},{17, 15, 15, 7},{18, 1, 21, 17},{13, 9, 9, 11},{3, 16, 12, 11},{12, 0, 7, 11},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG19[19][4] = {{0, 22, 2, 4},{0, 11, 11, 6},{0, 20, 21, 7},{0, 0, 24, 9},{0, 10, 4, 23},{0, 0, 19, 21},{0, 0, 22, 6},{0, 2, 12, 21},{0, 16, 18, 5},{0, 8, 13, 24},{0, 0, 25, 9},{0, 6, 2, 5},{0, 4, 7, 14},{0, 0, 21, 17},{0, 12, 23, 16},{0, 5, 16, 2},{0, 1, 14, 12},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG19[19][4] = {{15, 6, 9, 8},{17, 26, 4, 23},{6, 16, 15, 12},{14, 11, 1, 10},{24, 8, 26, 13},{23, 2, 27, 6},{23, 22, 29, 6},{15, 26, 2, 1},{25, 11, 24, 6},{8, 9, 8, 22},{15, 5, 6, 24},{15, 25, 11, 17},{7, 3, 3, 20},{10, 27, 6, 2},{0, 13, 5, 25},{15, 6, 7, 22},{17, 0, 20, 9},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG19[19][4] = {{2, 2, 2, 1},{5, 7, 7, 1},{2, 5, 1, 4},{7, 4, 7, 4},{4, 7, 5, 6},{2, 6, 5, 3},{3, 0, 5, 3},{5, 5, 1, 0},{6, 4, 7, 6},{7, 6, 7, 6},{1, 5, 6, 3},{3, 4, 1, 3},{7, 6, 1, 0},{6, 3, 5, 4},{3, 7, 5, 4},{7, 4, 3, 0},{7, 0, 5, 4},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG19[19][4] = {{7, 4, 1, 0},{7, 4, 10, 3},{2, 1, 4, 0},{9, 0, 8, 11},{1, 0, 4, 7},{0, 7, 5, 9},{5, 7, 3, 8},{0, 10, 4, 0},{1, 7, 3, 5},{5, 6, 9, 3},{9, 1, 8, 5},{11, 3, 4, 8},{10, 6, 5, 4},{2, 6, 11, 0},{0, 7, 0, 7},{6, 4, 1, 3},{10, 0, 1, 9},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG19[19][4] = {{13, 3, 8, 0},{15, 14, 7, 8},{3, 7, 0, 10},{9, 1, 0, 17},{0, 1, 18, 1},{19, 13, 7, 15},{15, 4, 2, 19},{2, 0, 0, 1},{15, 9, 11, 3},{4, 0, 6, 13},{13, 16, 15, 4},{18, 6, 3, 13},{10, 12, 1, 4},{13, 3, 4, 8},{16, 0, 6, 17},{9, 1, 10, 19},{12, 0, 16, 8},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG19[19][4] = {{27, 1, 11, 5},{16, 17, 7, 18},{10, 11, 3, 25},{7, 18, 8, 5},{18, 7, 12, 17},{10, 17, 18, 2},{0, 21, 11, 16},{9, 3, 13, 6},{20, 10, 9, 15},{21, 9, 14, 17},{19, 23, 21, 7},{14, 9, 18, 13},{14, 6, 21, 12},{1, 26, 2, 18},{2, 3, 5, 15},{20, 19, 27, 2},{25, 0, 6, 18},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG19[19][4] = {{31, 35, 6, 7},{18, 18, 23, 1},{8, 7, 4, 22},{6, 4, 25, 0},{3, 16, 27, 10},{4, 4, 22, 24},{29, 22, 2, 17},{0, 9, 27, 5},{8, 1, 0, 18},{0, 15, 3, 21},{7, 0, 2, 0},{17, 8, 13, 7},{0, 14, 0, 26},{23, 3, 0, 21},{0, 12, 17, 0},{1, 11, 20, 5},{9, 0, 18, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG19[19][4] = {{30, 33, 6, 9},{30, 5, 35, 6},{35, 8, 37, 5},{22, 30, 38, 15},{31, 4, 23, 7},{33, 24, 1, 34},{23, 38, 40, 3},{30, 6, 17, 18},{1, 35, 30, 26},{31, 33, 39, 37},{25, 26, 22, 5},{9, 22, 22, 9},{39, 37, 37, 29},{40, 1, 43, 39},{35, 9, 31, 11},{3, 38, 34, 33},{12, 0, 7, 33},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG19[19][4] = {{0, 22, 28, 4},{0, 11, 37, 6},{0, 20, 21, 33},{0, 0, 24, 9},{0, 10, 4, 49},{0, 0, 45, 21},{0, 0, 48, 6},{0, 2, 38, 47},{0, 16, 18, 31},{0, 8, 39, 50},{0, 0, 51, 35},{0, 6, 28, 5},{0, 30, 33, 40},{0, 0, 47, 17},{0, 12, 23, 16},{0, 31, 42, 2},{0, 1, 14, 38},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG19[19][4] = {{15, 36, 9, 8},{47, 56, 4, 23},{6, 16, 45, 42},{14, 41, 31, 40},{24, 8, 56, 43},{23, 32, 57, 6},{53, 52, 59, 36},{45, 56, 32, 1},{25, 11, 24, 36},{8, 9, 8, 22},{15, 35, 6, 24},{15, 25, 41, 47},{37, 33, 33, 20},{40, 27, 36, 32},{30, 43, 5, 55},{45, 36, 7, 52},{17, 0, 50, 39},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG19[19][4] = {{10, 2, 10, 9},{5, 15, 15, 9},{2, 5, 9, 4},{15, 12, 15, 4},{4, 7, 5, 6},{10, 14, 13, 3},{11, 8, 5, 3},{5, 13, 1, 8},{14, 12, 15, 6},{15, 6, 7, 6},{9, 13, 14, 11},{3, 4, 1, 3},{7, 14, 1, 0},{14, 11, 5, 12},{3, 15, 13, 4},{15, 12, 11, 0},{15, 0, 5, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG19[19][4] = {{19, 4, 13, 12},{19, 4, 10, 15},{2, 1, 16, 0},{9, 0, 20, 11},{13, 0, 16, 7},{0, 19, 17, 9},{5, 19, 3, 8},{0, 10, 16, 12},{13, 7, 15, 17},{17, 6, 9, 15},{21, 1, 8, 5},{23, 3, 16, 20},{10, 18, 5, 16},{2, 18, 11, 12},{12, 19, 0, 7},{18, 16, 13, 15},{10, 0, 13, 21},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG19[19][4] = {{33, 23, 28, 20},{15, 14, 7, 8},{23, 27, 0, 30},{9, 21, 0, 37},{0, 1, 38, 21},{39, 13, 27, 15},{15, 4, 2, 39},{2, 0, 0, 1},{15, 9, 31, 23},{4, 20, 26, 13},{13, 36, 15, 4},{18, 26, 3, 13},{30, 32, 21, 4},{33, 3, 24, 28},{16, 20, 6, 37},{29, 21, 30, 39},{32, 0, 36, 28},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG19[19][4] = {{55, 29, 39, 33},{16, 45, 35, 18},{38, 39, 31, 53},{35, 46, 8, 5},{18, 7, 12, 45},{10, 45, 18, 30},{0, 21, 39, 16},{37, 31, 41, 34},{48, 38, 9, 43},{21, 37, 14, 45},{47, 23, 21, 35},{14, 9, 46, 13},{14, 6, 21, 40},{29, 26, 30, 18},{30, 31, 5, 43},{48, 19, 55, 30},{25, 0, 34, 46},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG19[19][4] = {{67, 35, 42, 43},{54, 18, 23, 1},{44, 7, 4, 22},{42, 40, 61, 36},{3, 16, 27, 10},{4, 4, 58, 60},{29, 58, 2, 53},{0, 45, 63, 41},{44, 37, 0, 18},{0, 15, 3, 57},{43, 0, 2, 36},{17, 8, 13, 43},{0, 14, 0, 26},{23, 3, 0, 21},{0, 12, 53, 0},{1, 47, 56, 41},{45, 0, 18, 36},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG19[19][4] = {{30, 77, 50, 9},{30, 49, 35, 6},{79, 8, 37, 49},{66, 74, 38, 15},{31, 4, 23, 51},{77, 24, 1, 78},{67, 38, 40, 3},{74, 50, 61, 18},{1, 79, 30, 70},{75, 77, 39, 81},{25, 70, 22, 5},{53, 66, 22, 9},{83, 81, 37, 73},{40, 45, 43, 39},{79, 9, 75, 55},{47, 38, 34, 33},{12, 0, 7, 33},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG19[19][4] = {{0, 22, 28, 4},{0, 11, 37, 6},{0, 20, 21, 33},{0, 0, 76, 9},{0, 10, 4, 49},{0, 0, 45, 21},{0, 0, 48, 6},{0, 2, 38, 47},{0, 16, 18, 83},{0, 60, 91, 50},{0, 0, 51, 87},{0, 6, 28, 5},{0, 30, 85, 92},{0, 0, 47, 69},{0, 64, 75, 16},{0, 31, 42, 2},{0, 1, 66, 38},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG19[19][4] = {{15, 96, 69, 8},{107, 116, 4, 23},{6, 16, 105, 42},{14, 101, 31, 100},{84, 8, 116, 43},{83, 92, 117, 66},{53, 52, 59, 96},{105, 56, 92, 1},{85, 11, 24, 96},{8, 69, 68, 22},{75, 95, 6, 24},{15, 85, 101, 47},{97, 33, 33, 80},{100, 87, 96, 32},{90, 43, 5, 115},{105, 96, 67, 52},{17, 0, 110, 99},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG19[19][4] = {{26, 2, 10, 25},{5, 15, 15, 25},{2, 21, 25, 20},{31, 28, 31, 20},{4, 7, 21, 22},{10, 30, 29, 3},{27, 8, 5, 19},{5, 13, 17, 8},{14, 28, 31, 22},{31, 6, 7, 22},{9, 13, 14, 27},{3, 4, 1, 19},{23, 14, 1, 16},{30, 27, 21, 12},{3, 31, 13, 20},{15, 28, 27, 16},{31, 0, 21, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG19[19][4] = {{19, 28, 13, 36},{19, 28, 10, 39},{2, 25, 40, 0},{33, 0, 44, 35},{37, 0, 16, 7},{24, 43, 17, 9},{29, 43, 27, 8},{0, 34, 16, 36},{13, 7, 15, 17},{17, 6, 33, 39},{21, 25, 8, 5},{23, 3, 40, 20},{10, 18, 5, 16},{2, 18, 35, 12},{36, 43, 0, 31},{42, 16, 13, 39},{10, 0, 13, 21},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG19[19][4] = {{73, 63, 68, 60},{15, 54, 7, 48},{23, 27, 0, 30},{49, 21, 40, 37},{0, 1, 38, 61},{39, 53, 67, 15},{15, 4, 42, 79},{2, 0, 40, 41},{55, 49, 71, 63},{4, 60, 26, 13},{53, 76, 55, 4},{58, 26, 43, 53},{30, 72, 61, 44},{33, 3, 24, 28},{16, 20, 6, 77},{29, 61, 70, 79},{32, 0, 36, 68},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG19[19][4] = {{111, 29, 95, 89},{16, 45, 91, 18},{94, 39, 31, 53},{91, 46, 64, 5},{74, 7, 68, 45},{10, 45, 74, 30},{0, 21, 95, 16},{93, 87, 41, 34},{104, 94, 65, 43},{21, 93, 70, 101},{103, 79, 77, 35},{14, 9, 102, 69},{70, 6, 77, 96},{29, 82, 86, 74},{86, 31, 5, 99},{104, 75, 111, 30},{81, 0, 90, 46},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG19[19][4] = {{67, 35, 114, 43},{54, 18, 23, 1},{44, 79, 76, 22},{42, 112, 133, 108},{75, 16, 99, 82},{4, 76, 58, 132},{29, 58, 74, 53},{0, 117, 63, 41},{116, 109, 0, 18},{72, 15, 3, 57},{115, 72, 74, 36},{89, 8, 85, 115},{0, 14, 0, 98},{95, 3, 72, 21},{72, 12, 125, 0},{73, 119, 56, 113},{117, 0, 90, 108},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG19[19][4] = {{118, 77, 50, 97},{118, 49, 35, 94},{167, 96, 37, 49},{154, 162, 126, 103},{31, 92, 111, 139},{165, 112, 89, 166},{67, 126, 128, 91},{74, 50, 61, 106},{1, 167, 118, 70},{163, 77, 127, 169},{25, 158, 110, 93},{53, 66, 110, 9},{171, 81, 125, 73},{128, 133, 131, 39},{167, 9, 163, 143},{47, 126, 34, 121},{12, 0, 7, 121},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG19[19][4] = {{0, 22, 132, 4},{0, 11, 37, 6},{0, 124, 21, 33},{0, 0, 180, 113},{0, 10, 4, 49},{0, 0, 149, 21},{0, 0, 48, 6},{0, 2, 38, 151},{0, 16, 122, 83},{0, 60, 195, 154},{0, 0, 155, 87},{0, 6, 28, 5},{0, 30, 85, 92},{0, 0, 47, 173},{0, 168, 179, 120},{0, 31, 42, 2},{0, 105, 66, 142},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG19[19][4] = {{135, 96, 189, 128},{227, 236, 4, 23},{126, 136, 225, 162},{134, 221, 151, 220},{84, 128, 236, 43},{83, 92, 117, 186},{53, 172, 179, 96},{225, 56, 92, 1},{205, 11, 24, 216},{128, 189, 68, 22},{75, 95, 6, 24},{135, 85, 101, 167},{217, 153, 33, 200},{220, 87, 96, 32},{90, 163, 125, 235},{105, 216, 67, 172},{137, 0, 230, 219},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG19[19][4] = {{58, 2, 42, 57},{5, 47, 47, 25},{34, 53, 57, 20},{31, 60, 63, 20},{36, 7, 53, 22},{10, 30, 29, 3},{59, 40, 37, 51},{37, 45, 49, 8},{46, 28, 31, 22},{63, 38, 39, 54},{9, 45, 14, 27},{3, 4, 33, 19},{23, 14, 33, 48},{62, 27, 53, 12},{35, 63, 13, 52},{47, 28, 59, 16},{31, 0, 53, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG19[19][4] = {{19, 76, 13, 84},{19, 76, 58, 87},{50, 73, 40, 0},{81, 0, 44, 83},{85, 48, 64, 7},{24, 43, 65, 57},{29, 43, 75, 56},{0, 82, 64, 36},{13, 7, 63, 17},{17, 54, 33, 39},{69, 25, 8, 53},{23, 3, 88, 20},{10, 66, 53, 16},{50, 18, 35, 12},{84, 43, 48, 79},{42, 16, 13, 39},{58, 0, 13, 69},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG19[19][4] = {{73, 143, 68, 60},{15, 134, 7, 48},{103, 27, 80, 30},{49, 101, 120, 37},{80, 1, 38, 61},{39, 133, 67, 15},{15, 4, 42, 79},{2, 80, 40, 121},{55, 129, 71, 143},{4, 140, 106, 93},{133, 76, 135, 4},{138, 106, 123, 53},{110, 72, 141, 44},{113, 83, 24, 28},{16, 100, 86, 77},{29, 141, 70, 159},{32, 0, 116, 68},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG19[19][4] = {{223, 141, 207, 201},{16, 45, 203, 18},{94, 151, 31, 165},{91, 46, 176, 5},{74, 119, 180, 45},{10, 157, 186, 142},{0, 133, 95, 16},{205, 87, 153, 34},{216, 206, 177, 155},{21, 93, 70, 213},{215, 79, 77, 147},{14, 9, 214, 69},{70, 118, 77, 96},{141, 194, 198, 74},{198, 31, 117, 99},{104, 187, 223, 30},{81, 0, 90, 158},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG19[19][4] = {{211, 179, 258, 187},{198, 162, 167, 145},{188, 223, 220, 166},{186, 256, 133, 108},{219, 160, 243, 82},{4, 76, 202, 132},{29, 202, 218, 197},{144, 117, 63, 41},{116, 109, 0, 162},{216, 15, 3, 57},{115, 72, 74, 36},{233, 152, 229, 115},{144, 158, 0, 242},{95, 147, 216, 165},{216, 156, 269, 0},{73, 119, 200, 113},{261, 0, 234, 108},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG19[19][4] = {{294, 77, 226, 97},{118, 225, 35, 94},{167, 96, 213, 49},{330, 338, 302, 279},{207, 268, 111, 139},{165, 112, 265, 166},{243, 302, 128, 91},{250, 50, 237, 106},{1, 167, 294, 246},{339, 253, 127, 345},{201, 334, 110, 269},{53, 242, 286, 185},{347, 257, 125, 249},{304, 133, 131, 215},{167, 9, 163, 143},{47, 302, 210, 121},{188, 0, 7, 121},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG19[19][4] = {{122, 2, 106, 121},{69, 111, 111, 89},{98, 117, 57, 84},{31, 124, 63, 20},{100, 71, 117, 22},{10, 94, 93, 3},{59, 104, 101, 115},{101, 45, 49, 8},{110, 92, 95, 86},{63, 102, 39, 118},{9, 109, 14, 91},{67, 4, 97, 83},{23, 14, 97, 112},{62, 27, 117, 76},{35, 127, 77, 116},{111, 28, 123, 16},{31, 0, 117, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG19[19][4] = {{115, 76, 13, 84},{19, 76, 58, 87},{50, 73, 136, 0},{177, 96, 140, 83},{181, 144, 64, 7},{24, 139, 161, 153},{125, 139, 75, 56},{96, 178, 160, 132},{109, 103, 63, 113},{17, 150, 129, 39},{165, 25, 8, 149},{23, 99, 88, 20},{106, 162, 53, 112},{50, 114, 131, 108},{180, 139, 48, 79},{138, 112, 13, 39},{154, 0, 13, 165},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG19[19][4] = {{73, 303, 68, 220},{15, 294, 7, 208},{103, 27, 80, 30},{49, 261, 280, 197},{240, 161, 38, 61},{39, 133, 227, 175},{15, 4, 202, 79},{162, 80, 200, 281},{215, 129, 71, 303},{164, 300, 106, 253},{133, 76, 295, 164},{298, 266, 283, 53},{110, 72, 301, 44},{113, 83, 184, 28},{16, 260, 246, 77},{189, 301, 230, 319},{32, 0, 276, 68},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG19[19][4] = {{250, 2, 106, 121},{69, 239, 111, 89},{226, 117, 185, 84},{159, 124, 63, 20},{100, 71, 117, 150},{10, 222, 93, 131},{59, 104, 229, 243},{229, 173, 177, 136},{110, 220, 95, 86},{191, 102, 39, 246},{9, 109, 142, 219},{195, 132, 225, 211},{23, 142, 225, 240},{190, 155, 245, 76},{35, 255, 205, 244},{239, 28, 251, 144},{31, 0, 117, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG19[19][4] = {{307, 76, 205, 276},{19, 76, 250, 87},{50, 73, 328, 0},{369, 288, 332, 275},{181, 144, 256, 199},{216, 331, 161, 153},{317, 331, 267, 56},{288, 178, 160, 132},{109, 295, 63, 305},{17, 342, 129, 231},{357, 217, 200, 341},{215, 99, 88, 212},{106, 354, 53, 304},{242, 114, 131, 300},{180, 331, 240, 271},{330, 112, 205, 39},{346, 0, 13, 357},{1, 0, 0, 1},{0, 0, 0, 0}}; - -// BG2 -// CNG3 -static const uint16_t circShift_BG2_Z2_CNG3[3][6] = {{0, 0, 0, 0, 0, 1},{1, 0, 1, 0, 1, 1},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG3[3][6] = {{2, 0, 1, 2, 0, 1},{1, 0, 2, 2, 2, 1},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG3[3][6] = {{2, 0, 0, 2, 2, 3},{3, 0, 3, 0, 1, 3},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 0, 2, 4, 0, 4},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG3[3][6] = {{2, 3, 1, 2, 3, 1},{4, 3, 2, 5, 2, 1},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG3[3][6] = {{0, 1, 6, 3, 0, 5},{1, 3, 6, 5, 0, 5},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG3[3][6] = {{6, 4, 0, 2, 2, 3},{7, 4, 7, 4, 1, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG3[3][6] = {{0, 2, 4, 7, 8, 7},{6, 0, 1, 7, 4, 2},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 5, 2, 4, 0, 4},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG3[3][6] = {{7, 6, 9, 7, 7, 2},{9, 4, 5, 7, 5, 5},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG3[3][6] = {{8, 9, 7, 2, 3, 1},{4, 9, 2, 5, 2, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG3[3][6] = {{7, 2, 12, 11, 11, 12},{9, 12, 11, 1, 7, 11},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG3[3][6] = {{7, 1, 13, 10, 7, 12},{1, 10, 6, 5, 0, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG3[3][6] = {{0, 6, 4, 10, 6, 4},{14, 5, 1, 12, 1, 9},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG3[3][6] = {{14, 4, 8, 2, 10, 11},{15, 12, 7, 12, 1, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG3[3][6] = {{0, 2, 13, 7, 8, 7},{6, 9, 10, 7, 13, 2},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 5, 12, 14, 0, 4},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG3[3][6] = {{18, 6, 20, 7, 7, 13},{9, 4, 16, 7, 16, 16},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG3[3][6] = {{20, 21, 7, 14, 3, 13},{4, 21, 2, 17, 2, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG3[3][6] = {{20, 15, 12, 24, 11, 25},{22, 12, 11, 1, 7, 11},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG3[3][6] = {{21, 15, 27, 24, 7, 12},{1, 10, 6, 5, 14, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG3[3][6] = {{15, 6, 4, 25, 21, 4},{14, 5, 1, 27, 16, 24},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG3[3][6] = {{30, 4, 8, 18, 10, 27},{31, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG3[3][6] = {{18, 20, 13, 25, 8, 25},{24, 27, 10, 25, 31, 20},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 25, 32, 34, 20, 24},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG3[3][6] = {{18, 28, 42, 7, 29, 35},{31, 4, 16, 29, 16, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG3[3][6] = {{20, 45, 7, 14, 3, 37},{4, 21, 2, 17, 26, 31},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG3[3][6] = {{46, 41, 12, 50, 11, 25},{22, 38, 37, 27, 33, 37},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG3[3][6] = {{49, 43, 27, 52, 35, 40},{1, 38, 6, 5, 14, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG3[3][6] = {{15, 6, 4, 25, 21, 34},{44, 35, 1, 57, 46, 54},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG3[3][6] = {{30, 36, 8, 18, 42, 27},{63, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG3[3][6] = {{54, 56, 13, 61, 8, 25},{60, 63, 10, 25, 67, 56},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 74, 20, 64},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG3[3][6] = {{18, 72, 42, 51, 29, 79},{75, 48, 16, 73, 60, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG3[3][6] = {{20, 45, 7, 14, 3, 37},{52, 21, 50, 17, 74, 31},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG3[3][6] = {{98, 93, 64, 50, 11, 77},{22, 90, 89, 27, 85, 89},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG3[3][6] = {{49, 99, 27, 108, 35, 40},{1, 94, 6, 61, 70, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG3[3][6] = {{75, 66, 64, 25, 81, 34},{44, 95, 61, 57, 46, 114},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG3[3][6] = {{94, 100, 8, 18, 106, 91},{63, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG3[3][6] = {{54, 128, 13, 133, 80, 97},{132, 63, 10, 25, 139, 56},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 154, 20, 144},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG3[3][6] = {{18, 72, 42, 139, 117, 167},{163, 136, 104, 161, 148, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG3[3][6] = {{20, 45, 103, 110, 3, 37},{52, 21, 50, 17, 170, 31},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG3[3][6] = {{202, 197, 168, 50, 115, 181},{126, 194, 193, 27, 189, 193},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG3[3][6] = {{49, 211, 27, 108, 147, 40},{1, 94, 118, 61, 182, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG3[3][6] = {{195, 66, 64, 25, 201, 154},{44, 95, 181, 57, 46, 114},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG3[3][6] = {{222, 228, 8, 18, 106, 219},{63, 156, 151, 28, 1, 151},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG3[3][6] = {{54, 128, 13, 133, 80, 97},{132, 63, 10, 25, 139, 56},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 154, 20, 144},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG3[3][6] = {{18, 72, 42, 139, 117, 167},{163, 136, 104, 161, 148, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG3[3][6] = {{20, 45, 103, 110, 3, 37},{52, 21, 50, 17, 170, 31},{0, 0, 0, 0, 0, 0}}; -// CNG4 -static const uint16_t circShift_BG2_Z2_CNG4[4][20] = {{1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1},{0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1},{1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG4[4][20] = {{0, 1, 0, 2, 0, 1, 1, 1, 1, 2, 1, 0, 0, 2, 2, 1, 0, 0, 1, 0},{2, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2, 2, 0, 1, 1, 1, 0, 2, 1},{2, 2, 2, 0, 1, 0, 0, 1, 2, 1, 0, 2, 1, 0, 0, 2, 1, 0, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG4[4][20] = {{3, 2, 3, 3, 0, 3, 2, 0, 3, 2, 2, 2, 0, 3, 1, 0, 3, 3, 0, 1},{2, 2, 3, 3, 2, 0, 1, 2, 3, 3, 1, 0, 0, 1, 0, 2, 2, 0, 3, 1},{3, 2, 2, 1, 2, 1, 1, 2, 2, 0, 3, 2, 3, 0, 3, 2, 2, 2, 0, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{1, 0, 3, 3, 3, 3, 3, 2, 0, 4, 1, 0, 3, 4, 2, 3, 3, 4, 1, 2},{2, 2, 3, 4, 1, 4, 4, 3, 3, 2, 0, 2, 3, 3, 1, 2, 4, 3, 3, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG4[4][20] = {{0, 4, 3, 2, 0, 4, 4, 1, 4, 2, 4, 0, 3, 5, 5, 1, 0, 3, 1, 3},{2, 4, 3, 3, 0, 0, 1, 1, 2, 3, 3, 2, 5, 3, 4, 1, 1, 0, 5, 1},{5, 2, 5, 3, 4, 0, 3, 1, 5, 4, 0, 5, 4, 0, 0, 2, 4, 3, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG4[4][20] = {{4, 0, 4, 4, 5, 0, 6, 3, 2, 6, 6, 3, 1, 1, 0, 1, 2, 1, 0, 1},{2, 1, 0, 4, 2, 5, 6, 1, 5, 4, 2, 0, 5, 5, 4, 0, 6, 6, 0, 3},{3, 5, 4, 5, 2, 2, 1, 4, 1, 0, 4, 5, 4, 6, 6, 6, 4, 0, 1, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG4[4][20] = {{3, 6, 7, 3, 4, 7, 2, 4, 7, 6, 2, 2, 4, 3, 1, 4, 7, 7, 0, 1},{6, 6, 7, 7, 2, 4, 1, 2, 3, 3, 5, 4, 4, 5, 0, 6, 2, 4, 3, 5},{7, 6, 6, 5, 2, 1, 5, 2, 6, 0, 7, 6, 3, 4, 7, 2, 6, 2, 0, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG4[4][20] = {{6, 7, 6, 4, 8, 7, 2, 1, 5, 3, 7, 5, 0, 1, 6, 4, 1, 2, 6, 3},{6, 6, 5, 6, 7, 1, 4, 3, 7, 6, 5, 8, 6, 7, 2, 3, 7, 5, 1, 2},{6, 7, 5, 2, 7, 5, 6, 0, 2, 2, 7, 8, 2, 6, 3, 8, 1, 7, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{6, 5, 3, 3, 8, 8, 8, 7, 5, 9, 6, 0, 8, 9, 7, 3, 3, 4, 6, 2},{7, 7, 8, 9, 6, 4, 4, 3, 8, 7, 0, 2, 3, 8, 6, 2, 9, 8, 3, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG4[4][20] = {{9, 9, 1, 5, 8, 2, 7, 2, 0, 3, 9, 6, 6, 0, 5, 7, 2, 10, 6, 0},{1, 9, 0, 4, 9, 3, 8, 1, 0, 9, 2, 7, 5, 8, 9, 0, 7, 6, 2, 6},{6, 7, 4, 7, 0, 2, 8, 7, 7, 6, 6, 10, 7, 8, 7, 8, 8, 6, 5, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG4[4][20] = {{0, 10, 3, 8, 6, 10, 4, 1, 10, 2, 10, 0, 9, 5, 5, 1, 0, 9, 7, 3},{2, 10, 9, 3, 6, 6, 1, 7, 2, 9, 3, 8, 11, 9, 4, 7, 7, 0, 11, 7},{5, 8, 11, 9, 10, 0, 9, 7, 11, 4, 0, 5, 4, 0, 6, 2, 10, 9, 7, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG4[4][20] = {{4, 10, 5, 5, 12, 6, 1, 10, 0, 9, 1, 6, 7, 2, 1, 2, 1, 12, 11, 9},{1, 8, 12, 4, 8, 7, 9, 5, 1, 5, 4, 0, 4, 9, 11, 11, 4, 1, 7, 2},{0, 9, 10, 11, 10, 0, 10, 10, 0, 10, 7, 7, 10, 11, 12, 10, 9, 4, 10, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG4[4][20] = {{4, 7, 4, 4, 12, 7, 6, 10, 2, 13, 6, 10, 1, 1, 7, 1, 9, 8, 0, 8},{2, 1, 7, 4, 2, 12, 6, 1, 12, 4, 2, 7, 12, 5, 11, 7, 13, 13, 7, 3},{3, 12, 11, 12, 2, 2, 1, 11, 8, 7, 11, 12, 11, 13, 13, 13, 4, 0, 8, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG4[4][20] = {{14, 11, 4, 8, 8, 9, 12, 13, 5, 6, 7, 14, 1, 4, 10, 13, 12, 2, 3, 8},{5, 4, 2, 7, 1, 9, 2, 13, 4, 4, 9, 14, 2, 0, 0, 7, 11, 0, 7, 5},{0, 0, 12, 7, 0, 13, 6, 11, 6, 10, 1, 11, 1, 6, 10, 1, 0, 9, 0, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG4[4][20] = {{3, 14, 15, 3, 12, 7, 10, 12, 7, 14, 2, 2, 4, 3, 9, 12, 15, 15, 0, 1},{6, 14, 15, 15, 2, 4, 9, 10, 11, 11, 5, 12, 4, 5, 8, 6, 2, 12, 11, 5},{7, 6, 14, 5, 2, 9, 13, 2, 14, 8, 7, 6, 11, 4, 15, 10, 6, 2, 8, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG4[4][20] = {{6, 16, 15, 13, 17, 7, 2, 1, 14, 12, 16, 14, 9, 1, 6, 13, 1, 11, 6, 12},{6, 15, 14, 6, 16, 10, 13, 3, 7, 6, 5, 17, 6, 7, 11, 3, 16, 14, 1, 11},{15, 16, 5, 2, 16, 5, 6, 9, 2, 11, 7, 17, 2, 6, 3, 8, 1, 16, 12, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{16, 5, 13, 13, 18, 18, 8, 17, 15, 9, 6, 0, 8, 19, 17, 3, 13, 4, 16, 2},{17, 7, 8, 19, 6, 14, 4, 13, 18, 7, 10, 2, 13, 18, 6, 2, 19, 18, 3, 15},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG4[4][20] = {{20, 9, 12, 5, 19, 13, 18, 2, 0, 3, 20, 6, 17, 11, 16, 7, 2, 21, 6, 0},{1, 9, 11, 15, 9, 3, 8, 12, 0, 20, 2, 7, 5, 19, 20, 0, 7, 6, 2, 6},{17, 7, 4, 18, 0, 13, 19, 18, 18, 17, 17, 10, 7, 8, 18, 19, 19, 17, 16, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG4[4][20] = {{0, 22, 15, 20, 18, 10, 4, 13, 10, 14, 22, 12, 21, 5, 5, 1, 12, 21, 7, 3},{2, 22, 21, 15, 6, 18, 13, 7, 14, 9, 15, 8, 11, 9, 16, 7, 7, 12, 11, 7},{5, 8, 11, 9, 22, 12, 9, 19, 23, 16, 0, 17, 4, 12, 18, 2, 22, 9, 19, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG4[4][20] = {{17, 23, 18, 18, 25, 6, 14, 10, 0, 9, 14, 6, 7, 15, 1, 15, 1, 25, 11, 9},{1, 21, 25, 4, 21, 20, 9, 18, 14, 5, 4, 0, 17, 9, 11, 11, 17, 1, 7, 15},{13, 22, 23, 24, 10, 0, 10, 23, 13, 10, 20, 7, 23, 11, 25, 23, 9, 17, 23, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG4[4][20] = {{4, 7, 18, 4, 12, 7, 6, 24, 16, 13, 20, 24, 15, 1, 7, 1, 9, 22, 14, 8},{16, 15, 21, 4, 16, 26, 20, 15, 26, 4, 16, 21, 12, 5, 25, 7, 13, 13, 7, 17},{17, 12, 25, 26, 16, 2, 1, 25, 22, 7, 25, 26, 25, 13, 27, 27, 18, 14, 8, 25},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG4[4][20] = {{29, 26, 4, 8, 8, 9, 27, 28, 5, 21, 7, 29, 16, 4, 25, 28, 12, 17, 18, 23},{20, 19, 2, 7, 1, 24, 17, 13, 4, 19, 24, 14, 2, 15, 15, 22, 11, 15, 7, 5},{0, 15, 12, 7, 0, 28, 6, 11, 21, 10, 16, 26, 16, 21, 25, 16, 15, 9, 0, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG4[4][20] = {{19, 14, 31, 19, 28, 23, 26, 12, 23, 14, 2, 18, 4, 19, 25, 12, 31, 15, 0, 1},{22, 30, 15, 15, 2, 20, 9, 10, 11, 11, 5, 12, 4, 21, 8, 6, 2, 12, 11, 5},{7, 6, 14, 21, 18, 25, 29, 18, 14, 8, 7, 6, 11, 4, 31, 26, 6, 2, 24, 22},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG4[4][20] = {{6, 34, 33, 31, 17, 7, 2, 19, 32, 30, 34, 32, 27, 1, 24, 13, 1, 11, 6, 12},{24, 33, 14, 24, 34, 28, 31, 3, 7, 6, 5, 17, 6, 25, 29, 21, 34, 32, 1, 11},{15, 16, 23, 20, 34, 5, 6, 9, 20, 29, 7, 35, 2, 6, 21, 26, 1, 34, 30, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{16, 25, 33, 33, 18, 38, 28, 17, 35, 29, 6, 20, 8, 19, 37, 23, 13, 24, 36, 2},{37, 7, 8, 19, 6, 34, 24, 33, 38, 7, 30, 2, 13, 38, 6, 2, 19, 18, 23, 15},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG4[4][20] = {{42, 9, 34, 5, 41, 13, 40, 24, 22, 25, 20, 28, 17, 11, 38, 29, 24, 21, 28, 0},{23, 31, 11, 15, 31, 3, 8, 34, 0, 20, 24, 29, 5, 41, 20, 22, 7, 6, 24, 6},{39, 29, 4, 40, 22, 13, 41, 40, 18, 17, 17, 10, 29, 30, 40, 41, 19, 17, 38, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG4[4][20] = {{24, 22, 39, 20, 42, 10, 28, 13, 10, 38, 22, 36, 21, 29, 29, 25, 36, 45, 7, 3},{26, 22, 45, 15, 6, 42, 13, 31, 38, 9, 15, 8, 35, 33, 40, 7, 7, 36, 11, 7},{29, 8, 11, 33, 46, 12, 9, 19, 47, 16, 24, 17, 28, 12, 18, 26, 46, 9, 19, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG4[4][20] = {{43, 49, 18, 18, 25, 6, 40, 10, 0, 9, 14, 6, 7, 41, 1, 41, 1, 25, 37, 35},{27, 21, 51, 4, 47, 20, 35, 18, 14, 5, 30, 0, 17, 35, 11, 11, 17, 1, 7, 41},{13, 22, 49, 50, 36, 0, 10, 23, 13, 36, 46, 7, 23, 37, 25, 23, 35, 17, 23, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG4[4][20] = {{32, 35, 46, 4, 12, 35, 6, 24, 44, 41, 48, 52, 15, 29, 35, 1, 37, 50, 42, 8},{16, 43, 49, 32, 16, 26, 20, 43, 54, 32, 44, 21, 12, 33, 53, 7, 41, 13, 35, 45},{45, 40, 53, 54, 44, 30, 29, 25, 22, 7, 25, 54, 53, 13, 55, 27, 46, 42, 36, 25},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG4[4][20] = {{29, 56, 4, 38, 8, 39, 57, 58, 5, 21, 7, 59, 46, 4, 25, 58, 42, 47, 18, 53},{20, 49, 2, 37, 31, 24, 47, 13, 34, 19, 24, 14, 2, 15, 45, 52, 41, 45, 7, 35},{0, 45, 12, 37, 30, 28, 6, 11, 51, 10, 16, 56, 46, 21, 55, 46, 45, 9, 0, 50},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG4[4][20] = {{51, 14, 63, 51, 28, 23, 26, 12, 23, 46, 34, 50, 4, 19, 57, 12, 31, 47, 0, 1},{22, 30, 47, 47, 2, 20, 41, 42, 43, 11, 37, 44, 36, 21, 40, 38, 2, 44, 11, 37},{7, 38, 14, 21, 50, 57, 29, 18, 46, 8, 7, 38, 43, 36, 63, 26, 38, 34, 56, 54},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG4[4][20] = {{42, 70, 33, 67, 17, 7, 2, 19, 68, 30, 34, 32, 63, 37, 60, 49, 1, 47, 6, 48},{24, 69, 50, 24, 34, 28, 31, 3, 43, 42, 5, 17, 6, 25, 65, 57, 70, 32, 1, 47},{51, 16, 59, 56, 70, 41, 6, 9, 56, 29, 43, 71, 2, 42, 21, 26, 1, 70, 30, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{56, 65, 33, 73, 18, 78, 68, 17, 75, 69, 46, 20, 8, 19, 77, 63, 13, 24, 36, 2},{77, 7, 48, 19, 6, 74, 24, 33, 78, 7, 30, 42, 13, 78, 6, 2, 19, 58, 63, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG4[4][20] = {{86, 53, 34, 49, 85, 13, 40, 68, 22, 25, 64, 28, 17, 11, 38, 73, 24, 21, 72, 44},{67, 31, 11, 15, 31, 47, 52, 78, 44, 20, 24, 73, 49, 41, 64, 66, 7, 6, 68, 6},{83, 73, 4, 40, 22, 57, 85, 40, 62, 61, 61, 54, 29, 74, 84, 41, 19, 17, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG4[4][20] = {{72, 22, 39, 68, 90, 58, 76, 61, 10, 86, 70, 84, 69, 77, 77, 25, 84, 93, 7, 51},{74, 70, 93, 63, 6, 42, 61, 79, 86, 57, 15, 8, 83, 81, 88, 55, 55, 36, 11, 7},{29, 56, 11, 81, 46, 60, 57, 67, 95, 64, 72, 17, 28, 12, 18, 74, 94, 57, 67, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG4[4][20] = {{43, 101, 18, 70, 25, 6, 92, 10, 52, 9, 14, 6, 59, 93, 53, 93, 53, 77, 89, 87},{27, 73, 51, 4, 99, 20, 35, 18, 66, 57, 82, 0, 69, 87, 63, 63, 69, 53, 59, 93},{13, 22, 49, 102, 36, 52, 10, 23, 13, 88, 46, 59, 75, 89, 77, 75, 87, 69, 75, 63},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG4[4][20] = {{88, 35, 46, 4, 68, 35, 6, 80, 44, 41, 104, 108, 71, 29, 91, 1, 37, 106, 98, 8},{16, 43, 105, 88, 16, 26, 20, 43, 54, 88, 100, 21, 12, 89, 53, 63, 97, 69, 35, 101},{101, 40, 109, 110, 44, 86, 29, 81, 22, 63, 81, 110, 109, 69, 55, 83, 46, 42, 36, 81},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG4[4][20] = {{29, 56, 4, 38, 8, 39, 117, 118, 5, 81, 7, 59, 46, 64, 85, 58, 42, 47, 78, 53},{20, 49, 2, 97, 91, 84, 107, 13, 94, 19, 24, 14, 2, 15, 105, 112, 41, 45, 67, 95},{60, 105, 72, 37, 90, 88, 6, 11, 111, 10, 16, 116, 106, 21, 55, 106, 105, 69, 60, 110},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG4[4][20] = {{51, 14, 63, 51, 92, 87, 26, 76, 23, 46, 98, 114, 4, 19, 57, 12, 31, 111, 0, 1},{86, 94, 111, 47, 66, 20, 105, 42, 107, 11, 101, 44, 36, 85, 40, 38, 66, 44, 75, 101},{71, 102, 14, 85, 50, 57, 29, 82, 110, 8, 7, 38, 107, 36, 63, 26, 38, 34, 120, 118},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG4[4][20] = {{42, 70, 33, 139, 17, 79, 2, 91, 68, 30, 106, 32, 135, 37, 60, 121, 1, 119, 6, 48},{24, 69, 122, 96, 106, 28, 103, 75, 115, 42, 77, 89, 6, 25, 137, 129, 70, 32, 73, 47},{51, 88, 131, 128, 142, 41, 78, 81, 56, 101, 43, 71, 2, 114, 93, 26, 1, 142, 102, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{136, 65, 113, 73, 18, 158, 148, 17, 75, 69, 126, 20, 88, 19, 157, 63, 93, 24, 36, 2},{157, 87, 48, 99, 86, 154, 104, 33, 158, 87, 110, 122, 13, 78, 6, 82, 19, 138, 143, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG4[4][20] = {{86, 53, 122, 137, 173, 13, 128, 156, 110, 113, 64, 116, 105, 11, 126, 73, 112, 109, 160, 132},{67, 31, 11, 103, 31, 135, 52, 166, 132, 108, 24, 73, 137, 41, 152, 154, 7, 6, 156, 6},{83, 161, 4, 40, 22, 145, 173, 40, 150, 61, 149, 142, 29, 162, 172, 129, 19, 105, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG4[4][20] = {{72, 118, 39, 68, 186, 58, 76, 157, 106, 182, 70, 84, 165, 173, 77, 25, 84, 93, 103, 147},{74, 70, 93, 63, 6, 42, 61, 175, 86, 153, 111, 8, 179, 177, 184, 151, 151, 132, 107, 7},{29, 152, 11, 81, 46, 156, 153, 67, 95, 64, 168, 17, 124, 12, 18, 170, 190, 57, 163, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG4[4][20] = {{43, 101, 18, 174, 129, 110, 196, 10, 52, 113, 14, 110, 163, 197, 157, 197, 157, 181, 193, 191},{27, 177, 155, 108, 203, 124, 35, 122, 170, 161, 186, 0, 173, 191, 167, 167, 173, 157, 163, 197},{117, 22, 49, 102, 140, 52, 114, 23, 13, 88, 46, 163, 179, 193, 181, 179, 191, 173, 179, 167},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG4[4][20] = {{200, 147, 46, 116, 68, 35, 6, 80, 156, 153, 216, 108, 71, 29, 91, 1, 37, 106, 98, 120},{16, 43, 217, 200, 16, 138, 20, 43, 54, 88, 212, 21, 12, 201, 165, 175, 97, 181, 35, 101},{101, 152, 109, 110, 156, 86, 141, 81, 134, 63, 193, 110, 109, 69, 55, 83, 46, 154, 36, 81},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG4[4][20] = {{29, 176, 124, 38, 128, 39, 117, 238, 5, 81, 7, 179, 46, 184, 85, 178, 42, 167, 78, 53},{140, 169, 122, 217, 211, 84, 227, 13, 94, 19, 144, 14, 2, 135, 225, 112, 41, 45, 67, 215},{180, 225, 72, 157, 210, 88, 6, 11, 111, 130, 16, 116, 106, 141, 175, 106, 105, 189, 180, 230},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG4[4][20] = {{179, 142, 63, 51, 220, 87, 26, 76, 23, 46, 98, 242, 132, 147, 57, 140, 31, 239, 0, 129},{214, 94, 111, 175, 194, 20, 105, 42, 235, 139, 101, 44, 164, 85, 40, 38, 66, 172, 75, 229},{71, 230, 14, 213, 50, 185, 29, 210, 238, 8, 135, 166, 235, 36, 63, 154, 38, 34, 120, 118},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG4[4][20] = {{42, 70, 33, 139, 17, 79, 2, 91, 68, 30, 106, 32, 135, 37, 60, 121, 1, 119, 6, 48},{24, 69, 122, 96, 106, 28, 103, 75, 115, 42, 77, 89, 6, 25, 137, 129, 70, 32, 73, 47},{51, 88, 131, 128, 142, 41, 78, 81, 56, 101, 43, 71, 2, 114, 93, 26, 1, 142, 102, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{136, 65, 113, 73, 18, 158, 148, 17, 75, 69, 126, 20, 88, 19, 157, 63, 93, 24, 36, 2},{157, 87, 48, 99, 86, 154, 104, 33, 158, 87, 110, 122, 13, 78, 6, 82, 19, 138, 143, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG4[4][20] = {{86, 53, 122, 137, 173, 13, 128, 156, 110, 113, 64, 116, 105, 11, 126, 73, 112, 109, 160, 132},{67, 31, 11, 103, 31, 135, 52, 166, 132, 108, 24, 73, 137, 41, 152, 154, 7, 6, 156, 6},{83, 161, 4, 40, 22, 145, 173, 40, 150, 61, 149, 142, 29, 162, 172, 129, 19, 105, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG4[4][20] = {{72, 118, 39, 68, 186, 58, 76, 157, 106, 182, 70, 84, 165, 173, 77, 25, 84, 93, 103, 147},{74, 70, 93, 63, 6, 42, 61, 175, 86, 153, 111, 8, 179, 177, 184, 151, 151, 132, 107, 7},{29, 152, 11, 81, 46, 156, 153, 67, 95, 64, 168, 17, 124, 12, 18, 170, 190, 57, 163, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -// CNG5 -static const uint16_t circShift_BG2_Z2_CNG5[5][9] = {{1, 1, 1, 1, 1, 1, 0, 1, 1},{1, 1, 0, 0, 1, 0, 0, 1, 0},{1, 0, 0, 0, 1, 0, 0, 0, 1},{1, 1, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG5[5][9] = {{1, 2, 2, 1, 1, 0, 2, 1, 0},{0, 2, 2, 2, 1, 0, 2, 2, 1},{2, 1, 0, 2, 0, 0, 0, 1, 1},{1, 1, 1, 1, 1, 1, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG5[5][9] = {{3, 3, 3, 3, 3, 3, 2, 1, 3},{1, 1, 0, 2, 1, 2, 0, 3, 0},{1, 0, 2, 2, 3, 0, 2, 0, 1},{3, 1, 0, 2, 0, 2, 0, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{2, 2, 2, 2, 3, 4, 4, 0, 0},{1, 1, 4, 2, 2, 1, 4, 3, 1},{0, 0, 2, 1, 2, 3, 3, 2, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG5[5][9] = {{4, 5, 2, 1, 1, 3, 2, 1, 0},{0, 2, 2, 5, 4, 3, 5, 5, 4},{5, 4, 0, 5, 3, 3, 3, 1, 4},{4, 4, 4, 4, 1, 4, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG5[5][9] = {{2, 6, 1, 2, 1, 5, 6, 6, 1},{2, 3, 5, 1, 4, 4, 6, 6, 2},{2, 1, 5, 3, 5, 1, 3, 4, 3},{6, 0, 1, 0, 4, 6, 2, 6, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG5[5][9] = {{3, 3, 3, 3, 3, 3, 6, 5, 7},{5, 1, 4, 2, 1, 6, 4, 7, 0},{5, 0, 2, 6, 3, 0, 2, 0, 1},{7, 5, 0, 6, 0, 2, 0, 2, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG5[5][9] = {{7, 1, 1, 4, 8, 3, 3, 7, 6},{4, 5, 3, 1, 6, 0, 7, 1, 2},{6, 2, 8, 8, 4, 1, 2, 1, 5},{4, 6, 1, 2, 7, 8, 6, 7, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{7, 7, 7, 2, 8, 9, 4, 0, 5},{1, 6, 4, 2, 7, 1, 9, 3, 1},{5, 0, 2, 6, 7, 3, 8, 7, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG5[5][9] = {{5, 1, 3, 7, 0, 1, 2, 3, 7},{10, 3, 10, 3, 2, 4, 1, 5, 8},{0, 9, 2, 5, 8, 6, 7, 9, 5},{9, 1, 9, 6, 1, 0, 9, 2, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG5[5][9] = {{4, 11, 8, 1, 7, 3, 2, 7, 0},{0, 8, 8, 5, 10, 9, 11, 5, 10},{5, 10, 6, 11, 9, 3, 9, 7, 4},{10, 4, 10, 10, 7, 4, 6, 1, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG5[5][9] = {{4, 8, 0, 6, 0, 8, 5, 8, 5},{1, 8, 3, 1, 7, 5, 6, 3, 4},{10, 8, 9, 4, 0, 2, 12, 10, 11},{3, 12, 8, 4, 5, 7, 9, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG5[5][9] = {{2, 6, 1, 9, 8, 5, 6, 6, 8},{2, 10, 12, 1, 11, 4, 6, 6, 2},{2, 8, 12, 3, 12, 8, 10, 11, 3},{13, 0, 1, 0, 4, 13, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG5[5][9] = {{2, 8, 13, 3, 7, 5, 1, 11, 7},{13, 7, 4, 12, 7, 8, 8, 6, 4},{3, 13, 3, 2, 9, 10, 0, 10, 11},{8, 7, 6, 9, 12, 7, 8, 11, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG5[5][9] = {{11, 11, 11, 3, 3, 11, 14, 13, 7},{13, 9, 12, 2, 1, 14, 12, 15, 0},{13, 0, 2, 6, 3, 8, 2, 0, 9},{7, 5, 8, 14, 8, 2, 0, 10, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG5[5][9] = {{7, 10, 10, 4, 17, 12, 12, 16, 15},{4, 5, 12, 1, 15, 9, 7, 10, 2},{6, 11, 8, 8, 4, 10, 11, 10, 14},{13, 6, 10, 11, 7, 8, 6, 7, 16},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 12, 18, 19, 4, 0, 15},{11, 16, 4, 2, 17, 11, 9, 13, 11},{5, 0, 2, 6, 7, 3, 18, 7, 14},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG5[5][9] = {{16, 1, 3, 7, 11, 12, 2, 14, 18},{10, 3, 21, 3, 13, 4, 1, 16, 19},{11, 20, 2, 5, 8, 17, 18, 9, 5},{20, 1, 9, 17, 12, 11, 9, 13, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG5[5][9] = {{4, 11, 8, 1, 19, 15, 14, 19, 0},{12, 8, 20, 5, 22, 9, 23, 17, 10},{17, 22, 6, 11, 21, 15, 9, 7, 4},{10, 4, 10, 22, 19, 16, 6, 13, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG5[5][9] = {{4, 21, 13, 6, 13, 21, 5, 8, 18},{1, 8, 3, 1, 20, 5, 19, 16, 17},{23, 21, 9, 17, 0, 2, 12, 23, 24},{3, 25, 8, 4, 5, 20, 9, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG5[5][9] = {{2, 6, 15, 9, 8, 19, 20, 6, 22},{2, 10, 26, 1, 11, 18, 20, 6, 16},{16, 8, 26, 3, 12, 22, 10, 25, 17},{27, 0, 15, 0, 4, 13, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG5[5][9] = {{17, 8, 28, 18, 22, 20, 16, 26, 7},{28, 7, 4, 27, 22, 23, 23, 6, 19},{18, 28, 18, 17, 24, 25, 15, 10, 11},{8, 22, 21, 9, 12, 22, 8, 26, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG5[5][9] = {{11, 11, 11, 19, 19, 11, 30, 29, 7},{13, 25, 12, 2, 17, 14, 28, 15, 16},{29, 0, 18, 6, 3, 8, 18, 0, 9},{23, 21, 24, 30, 8, 18, 0, 26, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG5[5][9] = {{25, 10, 28, 4, 35, 12, 12, 34, 15},{4, 5, 30, 1, 15, 9, 7, 28, 20},{24, 29, 8, 26, 22, 28, 29, 28, 32},{13, 24, 28, 11, 25, 8, 6, 25, 34},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 32, 18, 39, 24, 20, 35},{11, 36, 4, 22, 17, 31, 29, 13, 11},{5, 20, 2, 26, 27, 23, 18, 7, 14},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG5[5][9] = {{16, 23, 3, 29, 11, 34, 2, 36, 40},{10, 25, 43, 3, 13, 26, 23, 38, 41},{11, 42, 24, 27, 8, 17, 18, 9, 5},{20, 23, 9, 39, 34, 33, 31, 13, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG5[5][9] = {{28, 11, 32, 1, 19, 39, 14, 19, 24},{36, 8, 44, 29, 22, 33, 23, 41, 10},{41, 22, 30, 35, 21, 39, 9, 7, 4},{34, 4, 10, 22, 19, 16, 6, 37, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG5[5][9] = {{30, 21, 39, 32, 39, 21, 5, 8, 18},{27, 8, 29, 1, 20, 31, 45, 16, 17},{49, 21, 35, 43, 0, 2, 38, 49, 50},{29, 51, 8, 30, 5, 20, 35, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG5[5][9] = {{2, 6, 43, 37, 36, 19, 48, 34, 50},{30, 38, 26, 1, 39, 46, 20, 6, 44},{16, 8, 54, 31, 40, 22, 38, 53, 17},{27, 0, 43, 28, 4, 41, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG5[5][9] = {{47, 38, 58, 48, 22, 50, 16, 26, 37},{58, 37, 34, 57, 52, 23, 53, 6, 19},{48, 28, 48, 47, 24, 55, 15, 10, 41},{8, 52, 51, 39, 42, 22, 38, 26, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG5[5][9] = {{11, 11, 11, 19, 51, 11, 62, 29, 7},{13, 57, 44, 2, 17, 14, 60, 15, 48},{61, 0, 18, 38, 3, 8, 50, 32, 9},{55, 53, 56, 30, 40, 50, 0, 58, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG5[5][9] = {{25, 46, 28, 4, 71, 48, 48, 70, 15},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 29, 44, 62, 58, 28, 65, 28, 32},{49, 24, 64, 47, 25, 8, 42, 61, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 32, 58, 79, 24, 20, 35},{51, 76, 4, 22, 57, 31, 29, 13, 51},{5, 20, 2, 26, 27, 63, 18, 7, 54},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG5[5][9] = {{16, 23, 3, 29, 11, 78, 46, 36, 84},{54, 25, 87, 3, 57, 70, 23, 38, 85},{11, 86, 24, 27, 8, 17, 62, 53, 5},{64, 23, 53, 39, 78, 77, 75, 57, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 62, 67, 24},{36, 8, 92, 29, 22, 81, 23, 41, 58},{89, 22, 78, 35, 21, 39, 9, 55, 52},{82, 52, 58, 70, 67, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG5[5][9] = {{82, 21, 39, 32, 91, 21, 57, 60, 70},{27, 60, 29, 53, 20, 31, 97, 68, 17},{101, 73, 35, 95, 52, 54, 38, 49, 50},{81, 51, 8, 82, 5, 72, 35, 57, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG5[5][9] = {{2, 62, 99, 37, 36, 75, 48, 90, 106},{30, 38, 26, 1, 95, 46, 20, 6, 44},{72, 8, 110, 31, 40, 22, 94, 109, 73},{83, 56, 99, 28, 4, 97, 2, 6, 64},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG5[5][9] = {{47, 38, 58, 48, 82, 50, 76, 26, 37},{118, 97, 94, 57, 112, 23, 53, 66, 19},{48, 88, 48, 47, 84, 55, 75, 70, 101},{68, 112, 51, 99, 42, 82, 98, 86, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG5[5][9] = {{75, 11, 11, 83, 115, 75, 126, 29, 71},{77, 57, 108, 2, 17, 14, 124, 15, 112},{61, 0, 82, 38, 3, 8, 114, 32, 9},{119, 117, 56, 94, 104, 114, 64, 122, 84},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG5[5][9] = {{97, 46, 28, 76, 143, 48, 120, 142, 87},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 101, 116, 62, 130, 28, 65, 100, 104},{49, 96, 64, 47, 97, 8, 42, 133, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{97, 17, 7, 112, 138, 79, 24, 100, 35},{51, 156, 4, 102, 57, 111, 109, 13, 51},{85, 20, 2, 26, 27, 143, 18, 7, 134},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG5[5][9] = {{104, 111, 91, 29, 11, 78, 134, 36, 84},{142, 25, 175, 91, 145, 158, 23, 38, 173},{99, 174, 24, 27, 8, 17, 62, 53, 93},{64, 23, 141, 127, 166, 165, 163, 145, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 158, 67, 120},{132, 104, 92, 125, 118, 177, 23, 137, 154},{185, 22, 174, 35, 21, 135, 9, 55, 52},{178, 52, 154, 166, 163, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG5[5][9] = {{186, 125, 39, 32, 91, 125, 57, 164, 70},{27, 60, 29, 53, 20, 31, 201, 172, 17},{205, 177, 35, 95, 52, 54, 142, 49, 50},{81, 51, 8, 186, 109, 176, 35, 161, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG5[5][9] = {{2, 174, 99, 37, 36, 75, 48, 90, 106},{30, 150, 138, 113, 95, 158, 132, 6, 44},{184, 8, 110, 143, 40, 134, 206, 221, 185},{83, 56, 99, 140, 116, 97, 2, 6, 176},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG5[5][9] = {{167, 38, 178, 48, 82, 170, 196, 146, 37},{238, 217, 214, 57, 232, 23, 173, 66, 139},{48, 208, 168, 167, 204, 175, 195, 190, 221},{68, 232, 51, 219, 162, 202, 218, 86, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG5[5][9] = {{203, 11, 11, 83, 115, 203, 254, 29, 71},{205, 185, 236, 2, 145, 142, 124, 143, 240},{61, 0, 210, 38, 3, 8, 114, 160, 9},{247, 117, 56, 222, 232, 242, 64, 122, 84},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG5[5][9] = {{97, 46, 28, 76, 143, 48, 120, 142, 87},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 101, 116, 62, 130, 28, 65, 100, 104},{49, 96, 64, 47, 97, 8, 42, 133, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{97, 17, 7, 112, 138, 79, 24, 100, 35},{51, 156, 4, 102, 57, 111, 109, 13, 51},{85, 20, 2, 26, 27, 143, 18, 7, 134},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG5[5][9] = {{104, 111, 91, 29, 11, 78, 134, 36, 84},{142, 25, 175, 91, 145, 158, 23, 38, 173},{99, 174, 24, 27, 8, 17, 62, 53, 93},{64, 23, 141, 127, 166, 165, 163, 145, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 158, 67, 120},{132, 104, 92, 125, 118, 177, 23, 137, 154},{185, 22, 174, 35, 21, 135, 9, 55, 52},{178, 52, 154, 166, 163, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -// CNG6 -static const uint16_t circShift_BG2_Z2_CNG6[6][3] = {{1, 1, 1},{1, 0, 1},{0, 1, 0},{1, 0, 1},{1, 0, 0},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG6[6][3] = {{1, 0, 2},{2, 2, 0},{1, 1, 1},{2, 1, 0},{0, 1, 2},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG6[6][3] = {{3, 3, 1},{1, 0, 3},{2, 1, 0},{3, 0, 3},{3, 2, 0},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG6[6][3] = {{0, 0, 0},{1, 4, 0},{2, 4, 3},{1, 0, 1},{4, 3, 3},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG6[6][3] = {{4, 3, 2},{2, 2, 0},{1, 4, 4},{2, 1, 0},{0, 4, 5},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG6[6][3] = {{3, 4, 5},{5, 6, 6},{2, 3, 0},{2, 5, 3},{4, 6, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG6[6][3] = {{7, 3, 1},{1, 4, 3},{2, 5, 4},{7, 4, 3},{7, 6, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG6[6][3] = {{4, 1, 7},{5, 6, 0},{3, 8, 8},{2, 7, 0},{8, 4, 2},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG6[6][3] = {{0, 0, 0},{1, 4, 5},{2, 9, 8},{1, 5, 6},{4, 8, 8},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG6[6][3] = {{2, 3, 4},{7, 0, 4},{2, 10, 2},{4, 1, 3},{5, 7, 0},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG6[6][3] = {{10, 9, 8},{8, 8, 6},{1, 4, 4},{8, 1, 6},{0, 4, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG6[6][3] = {{6, 7, 7},{10, 8, 0},{10, 3, 0},{2, 12, 3},{10, 12, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG6[6][3] = {{3, 11, 5},{12, 13, 13},{2, 3, 7},{9, 12, 10},{11, 13, 13},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG6[6][3] = {{1, 2, 11},{11, 12, 6},{4, 7, 12},{13, 4, 7},{12, 11, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG6[6][3] = {{7, 11, 1},{9, 4, 3},{2, 13, 12},{15, 12, 3},{7, 14, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG6[6][3] = {{4, 1, 7},{14, 15, 9},{12, 17, 17},{11, 7, 0},{17, 13, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG6[6][3] = {{0, 0, 0},{11, 4, 5},{2, 19, 8},{1, 5, 16},{4, 8, 18},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG6[6][3] = {{13, 3, 4},{18, 0, 15},{13, 10, 2},{15, 1, 3},{16, 7, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG6[6][3] = {{10, 9, 8},{20, 20, 18},{1, 4, 16},{8, 1, 6},{0, 16, 23},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG6[6][3] = {{6, 7, 7},{23, 8, 0},{10, 16, 13},{2, 12, 3},{10, 12, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG6[6][3] = {{17, 11, 19},{26, 27, 13},{2, 3, 21},{23, 26, 10},{25, 13, 13},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG6[6][3] = {{1, 17, 26},{11, 12, 6},{19, 22, 27},{28, 4, 22},{27, 26, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG6[6][3] = {{7, 27, 1},{9, 4, 19},{2, 13, 12},{31, 28, 3},{7, 30, 20},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG6[6][3] = {{4, 1, 25},{32, 15, 27},{12, 35, 35},{29, 25, 0},{35, 31, 29},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG6[6][3] = {{0, 0, 0},{11, 4, 5},{22, 19, 28},{21, 5, 16},{24, 28, 38},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG6[6][3] = {{35, 3, 4},{40, 22, 37},{35, 10, 24},{15, 23, 3},{16, 29, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG6[6][3] = {{10, 33, 32},{44, 44, 42},{25, 4, 16},{32, 1, 6},{0, 40, 47},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG6[6][3] = {{32, 7, 7},{49, 34, 26},{36, 42, 39},{28, 12, 3},{10, 12, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG6[6][3] = {{17, 11, 47},{26, 55, 13},{2, 31, 49},{51, 54, 38},{25, 41, 13},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG6[6][3] = {{1, 17, 26},{41, 12, 6},{49, 52, 27},{28, 4, 52},{27, 56, 34},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG6[6][3] = {{39, 27, 1},{41, 36, 19},{2, 45, 12},{31, 28, 3},{39, 30, 52},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG6[6][3] = {{40, 37, 25},{68, 15, 63},{12, 35, 35},{65, 61, 36},{71, 67, 65},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG6[6][3] = {{0, 0, 0},{51, 44, 45},{62, 19, 68},{61, 45, 16},{64, 68, 78},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG6[6][3] = {{79, 47, 48},{84, 66, 37},{35, 10, 24},{15, 67, 47},{60, 29, 55},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG6[6][3] = {{10, 33, 80},{44, 92, 90},{25, 4, 16},{80, 49, 6},{48, 88, 47},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG6[6][3] = {{32, 7, 59},{49, 34, 78},{36, 94, 39},{28, 64, 3},{62, 12, 58},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG6[6][3] = {{73, 11, 103},{26, 55, 13},{58, 31, 105},{107, 110, 38},{81, 97, 69},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG6[6][3] = {{1, 17, 86},{41, 72, 66},{49, 52, 87},{88, 4, 52},{87, 56, 34},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG6[6][3] = {{103, 27, 1},{41, 100, 19},{66, 45, 12},{31, 28, 3},{103, 30, 116},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG6[6][3] = {{40, 109, 97},{140, 87, 135},{84, 107, 35},{137, 133, 108},{71, 139, 65},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG6[6][3] = {{0, 0, 0},{131, 124, 45},{142, 99, 148},{141, 45, 96},{64, 148, 78},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG6[6][3] = {{79, 47, 48},{84, 154, 125},{35, 10, 24},{103, 155, 47},{60, 29, 55},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG6[6][3] = {{10, 129, 80},{44, 92, 186},{121, 100, 16},{80, 49, 102},{48, 184, 143},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG6[6][3] = {{136, 7, 163},{49, 34, 78},{36, 198, 143},{132, 168, 107},{62, 12, 58},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG6[6][3] = {{185, 123, 103},{138, 55, 13},{170, 31, 105},{219, 222, 150},{193, 209, 181},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG6[6][3] = {{121, 137, 86},{41, 72, 186},{169, 172, 87},{88, 124, 172},{207, 56, 154},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG6[6][3] = {{231, 155, 129},{41, 228, 147},{194, 45, 140},{159, 28, 3},{103, 158, 116},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG6[6][3] = {{40, 109, 97},{140, 87, 135},{84, 107, 35},{137, 133, 108},{71, 139, 65},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG6[6][3] = {{0, 0, 0},{131, 124, 45},{142, 99, 148},{141, 45, 96},{64, 148, 78},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG6[6][3] = {{79, 47, 48},{84, 154, 125},{35, 10, 24},{103, 155, 47},{60, 29, 55},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG6[6][3] = {{10, 129, 80},{44, 92, 186},{121, 100, 16},{80, 49, 102},{48, 184, 143},{0, 0, 0}}; -// CNG8 -static const uint16_t circShift_BG2_Z2_CNG8[8][2] = {{1, 1},{1, 0},{0, 0},{0, 0},{1, 0},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG8[8][2] = {{0, 1},{1, 0},{1, 0},{0, 2},{2, 0},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG8[8][2] = {{1, 1},{1, 2},{0, 0},{2, 0},{1, 0},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG8[8][2] = {{0, 0},{0, 4},{0, 4},{0, 4},{0, 3},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG8[8][2] = {{0, 1},{1, 0},{4, 3},{0, 2},{5, 0},{4, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG8[8][2] = {{2, 5},{5, 5},{2, 4},{6, 2},{4, 0},{1, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG8[8][2] = {{1, 1},{5, 2},{4, 4},{2, 4},{5, 0},{5, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG8[8][2] = {{3, 5},{8, 7},{8, 2},{8, 2},{7, 3},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG8[8][2] = {{0, 0},{0, 4},{0, 9},{0, 9},{0, 8},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG8[8][2] = {{2, 10},{0, 3},{3, 8},{3, 5},{7, 10},{2, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG8[8][2] = {{6, 1},{1, 6},{10, 9},{6, 2},{11, 6},{4, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG8[8][2] = {{0, 9},{6, 7},{7, 8},{9, 1},{1, 2},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG8[8][2] = {{2, 12},{12, 5},{9, 4},{13, 9},{11, 7},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG8[8][2] = {{10, 14},{11, 1},{11, 3},{6, 8},{8, 5},{7, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG8[8][2] = {{9, 1},{5, 2},{12, 12},{10, 4},{13, 0},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG8[8][2] = {{3, 5},{8, 16},{17, 2},{17, 2},{7, 3},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG8[8][2] = {{0, 0},{0, 14},{0, 19},{0, 9},{0, 8},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG8[8][2] = {{2, 10},{11, 14},{14, 19},{3, 16},{18, 10},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG8[8][2] = {{6, 1},{1, 18},{22, 21},{18, 14},{23, 18},{4, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG8[8][2] = {{13, 22},{19, 7},{20, 21},{9, 1},{14, 2},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG8[8][2] = {{16, 12},{26, 19},{23, 18},{13, 23},{11, 7},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG8[8][2] = {{25, 14},{11, 1},{11, 3},{21, 23},{23, 5},{22, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG8[8][2] = {{9, 17},{21, 18},{12, 12},{26, 20},{29, 16},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG8[8][2] = {{3, 23},{26, 34},{17, 20},{35, 2},{7, 3},{19, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG8[8][2] = {{0, 20},{0, 14},{0, 19},{0, 9},{0, 28},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG8[8][2] = {{24, 10},{11, 36},{14, 19},{3, 38},{40, 10},{35, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG8[8][2] = {{30, 25},{1, 18},{22, 21},{18, 14},{23, 18},{28, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG8[8][2] = {{39, 22},{19, 7},{20, 47},{9, 27},{40, 28},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG8[8][2] = {{16, 40},{54, 19},{23, 46},{13, 23},{39, 35},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG8[8][2] = {{25, 14},{11, 31},{11, 3},{21, 53},{23, 35},{52, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG8[8][2] = {{9, 17},{53, 50},{12, 44},{26, 52},{61, 48},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG8[8][2] = {{3, 23},{26, 34},{53, 20},{35, 38},{43, 39},{55, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG8[8][2] = {{0, 20},{0, 14},{0, 19},{0, 9},{0, 28},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG8[8][2] = {{68, 10},{55, 80},{14, 19},{3, 82},{40, 54},{35, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG8[8][2] = {{78, 25},{1, 18},{70, 21},{66, 14},{71, 18},{76, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG8[8][2] = {{39, 22},{19, 59},{72, 47},{61, 79},{92, 28},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG8[8][2] = {{72, 40},{110, 19},{23, 46},{69, 79},{95, 91},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG8[8][2] = {{25, 74},{11, 31},{71, 3},{21, 53},{23, 35},{112, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG8[8][2] = {{9, 81},{117, 114},{76, 44},{26, 52},{61, 112},{77, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG8[8][2] = {{3, 95},{26, 106},{53, 92},{35, 110},{115, 111},{127, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG8[8][2] = {{0, 20},{0, 94},{0, 99},{0, 9},{0, 108},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG8[8][2] = {{156, 98},{143, 168},{14, 107},{3, 82},{40, 142},{123, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG8[8][2] = {{174, 25},{97, 114},{166, 117},{66, 110},{71, 114},{172, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG8[8][2] = {{143, 126},{19, 163},{176, 47},{165, 183},{196, 132},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG8[8][2] = {{72, 152},{110, 131},{23, 46},{181, 191},{95, 91},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG8[8][2] = {{145, 74},{131, 31},{71, 3},{21, 53},{23, 155},{112, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG8[8][2] = {{9, 81},{117, 114},{204, 44},{26, 52},{189, 240},{205, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG8[8][2] = {{3, 95},{26, 106},{53, 92},{35, 110},{115, 111},{127, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG8[8][2] = {{0, 20},{0, 94},{0, 99},{0, 9},{0, 108},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG8[8][2] = {{156, 98},{143, 168},{14, 107},{3, 82},{40, 142},{123, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG8[8][2] = {{174, 25},{97, 114},{166, 117},{66, 110},{71, 114},{172, 1},{0, 0},{0, 0}}; -// CNG10 -static const uint16_t circShift_BG2_Z2_CNG10[10][2] = {{1, 0},{0, 0},{1, 0},{1, 0},{0, 1},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG10[10][2] = {{0, 1},{0, 1},{0, 2},{2, 0},{1, 0},{1, 1},{2, 1},{0, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG10[10][2] = {{3, 0},{2, 2},{1, 2},{1, 0},{2, 1},{0, 2},{0, 2},{0, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG10[10][2] = {{2, 3},{4, 0},{0, 2},{0, 1},{3, 2},{0, 2},{0, 3},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG10[10][2] = {{3, 4},{0, 1},{0, 5},{2, 0},{1, 3},{1, 4},{5, 4},{3, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG10[10][2] = {{4, 3},{2, 6},{3, 1},{2, 5},{3, 5},{4, 5},{1, 2},{3, 0},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG10[10][2] = {{7, 0},{6, 2},{5, 6},{5, 0},{2, 1},{4, 6},{0, 2},{4, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG10[10][2] = {{1, 3},{4, 4},{5, 4},{3, 4},{3, 1},{8, 4},{6, 2},{5, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG10[10][2] = {{7, 8},{4, 5},{0, 2},{0, 6},{8, 2},{0, 7},{0, 3},{5, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG10[10][2] = {{6, 9},{10, 9},{8, 9},{1, 6},{0, 6},{4, 1},{6, 6},{1, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG10[10][2] = {{3, 4},{0, 7},{0, 5},{8, 0},{7, 3},{7, 10},{5, 4},{3, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG10[10][2] = {{5, 10},{1, 9},{3, 5},{11, 7},{3, 8},{4, 3},{1, 9},{11, 4},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG10[10][2] = {{11, 3},{2, 6},{3, 8},{2, 12},{3, 12},{4, 12},{1, 2},{3, 7},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG10[10][2] = {{7, 14},{9, 6},{3, 5},{12, 5},{6, 9},{8, 4},{9, 13},{2, 0},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG10[10][2] = {{7, 8},{6, 10},{13, 14},{13, 8},{2, 1},{12, 6},{0, 2},{12, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG10[10][2] = {{1, 12},{4, 13},{14, 4},{12, 4},{12, 1},{8, 13},{15, 2},{14, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG10[10][2] = {{17, 18},{4, 15},{0, 2},{0, 6},{8, 12},{0, 17},{0, 13},{15, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG10[10][2] = {{17, 9},{21, 20},{19, 20},{1, 17},{11, 17},{15, 1},{17, 17},{1, 17},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG10[10][2] = {{3, 16},{12, 7},{0, 17},{20, 0},{7, 3},{19, 22},{17, 4},{3, 18},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG10[10][2] = {{18, 10},{1, 22},{3, 18},{24, 7},{3, 21},{17, 3},{14, 9},{24, 4},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG10[10][2] = {{25, 17},{16, 6},{3, 8},{16, 12},{3, 12},{4, 26},{1, 16},{3, 21},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG10[10][2] = {{22, 29},{24, 21},{3, 5},{27, 20},{6, 9},{23, 19},{9, 13},{17, 15},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG10[10][2] = {{7, 8},{6, 26},{29, 30},{29, 8},{2, 17},{28, 22},{0, 18},{28, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG10[10][2] = {{19, 12},{22, 13},{32, 22},{30, 4},{12, 1},{26, 13},{33, 20},{14, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG10[10][2] = {{17, 38},{4, 15},{0, 22},{0, 26},{8, 12},{0, 17},{0, 13},{15, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG10[10][2] = {{17, 9},{21, 42},{19, 42},{1, 39},{11, 17},{37, 1},{39, 17},{1, 17},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG10[10][2] = {{27, 40},{36, 31},{0, 17},{44, 24},{31, 27},{43, 22},{41, 28},{3, 42},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{50, 7},{29, 47},{17, 3},{14, 35},{24, 4},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG10[10][2] = {{53, 17},{44, 6},{3, 36},{44, 12},{3, 12},{32, 54},{29, 44},{31, 21},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG10[10][2] = {{22, 59},{54, 51},{3, 35},{27, 50},{36, 39},{23, 19},{9, 43},{47, 15},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG10[10][2] = {{39, 8},{38, 58},{61, 30},{61, 40},{34, 17},{28, 54},{32, 18},{60, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG10[10][2] = {{19, 48},{22, 49},{32, 22},{66, 4},{12, 1},{26, 49},{69, 56},{50, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG10[10][2] = {{57, 38},{44, 15},{0, 22},{0, 66},{8, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG10[10][2] = {{17, 53},{65, 86},{63, 86},{1, 39},{55, 17},{37, 1},{83, 17},{45, 17},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG10[10][2] = {{27, 40},{36, 79},{48, 17},{92, 72},{31, 27},{91, 22},{89, 28},{3, 90},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{102, 7},{81, 99},{17, 3},{14, 87},{76, 56},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG10[10][2] = {{53, 73},{44, 6},{3, 36},{44, 12},{3, 12},{88, 110},{29, 44},{31, 21},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG10[10][2] = {{22, 119},{54, 51},{63, 95},{27, 110},{96, 39},{23, 79},{9, 43},{47, 75},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG10[10][2] = {{39, 8},{38, 58},{125, 30},{125, 104},{98, 81},{28, 54},{96, 18},{124, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG10[10][2] = {{19, 120},{94, 121},{104, 22},{66, 4},{84, 73},{98, 49},{69, 128},{50, 79},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG10[10][2] = {{137, 38},{124, 15},{0, 102},{0, 146},{88, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG10[10][2] = {{17, 53},{65, 174},{63, 174},{1, 127},{55, 17},{37, 89},{171, 17},{133, 105},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG10[10][2] = {{27, 136},{36, 175},{48, 113},{92, 72},{31, 123},{187, 118},{185, 28},{3, 186},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{102, 111},{185, 203},{17, 3},{14, 191},{180, 160},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG10[10][2] = {{53, 185},{156, 6},{115, 36},{156, 124},{115, 124},{200, 110},{29, 156},{31, 133},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG10[10][2] = {{142, 239},{174, 171},{183, 95},{27, 110},{96, 159},{23, 199},{9, 43},{167, 75},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG10[10][2] = {{167, 8},{166, 58},{253, 158},{125, 104},{226, 209},{156, 54},{224, 18},{252, 128},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG10[10][2] = {{19, 120},{94, 121},{104, 22},{66, 4},{84, 73},{98, 49},{69, 128},{50, 79},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG10[10][2] = {{137, 38},{124, 15},{0, 102},{0, 146},{88, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG10[10][2] = {{17, 53},{65, 174},{63, 174},{1, 127},{55, 17},{37, 89},{171, 17},{133, 105},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG10[10][2] = {{27, 136},{36, 175},{48, 113},{92, 72},{31, 123},{187, 118},{185, 28},{3, 186},{0, 0},{0, 0}}; - -// Startaddressses in the BN buffer of the different CN groups -// BG1 -// Group of CNs with 3 BNs (CNG3) / only this group is independent of Z -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG3[3][1] = {{111360},{100224},{0}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG3[3][1] = {{52224},{47616},{0}}; -// R89 -static const uint32_t startAddrBnProcBuf_BG1_R89_CNG3[3][1] = {{29952},{28032},{0}}; - -// Group of CNs with 4 BNs (CNG4) -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG4[4][5] = {{105984, 107904, 120192, 120576, 109440},{40704, 74496, 43008, 47232, 43008},{41856, 19200, 61440, 23424, 92544},{0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG4[4][5] = {{0, 0, 0, 0, 0},{0, 1, 1, 0, 0},{1, 0, 3, 0, 1},{23, 33, 36, 38, 41}}; - -// Group of CNs with 5 BNs (CNG5) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG5[5][18] = {{116736, 105216, 105600, 117504, 117888, 106368, 118272, 106752, 118656, 107136, 119040, 107520, 119424, 119808, 108288, 108672, 109056, 120960},{87936, 30336, 39552, 31872, 46848, 58368, 89472, 87936, 89472, 33408, 89472, 41856, 61440, 30336, 73344, 74496, 61440, 92544},{72192, 87936, 86400, 46464, 31872, 97536, 73344, 89472, 59904, 61440, 31872, 91008, 33408, 91008, 91008, 31872, 98688, 33408},{58368, 97152, 56832, 30336, 73344, 21888, 21888, 22656, 22656, 74496, 59904, 91008, 97920, 92544, 33408, 98304, 23424, 92544},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG5[5][18] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{2, 0, 0, 0, 0, 1, 1, 0, 2, 0, 0, 0, 1, 1, 0, 0, 2, 0},{1, 1, 0, 0, 3, 0, 1, 3, 1, 0, 2, 2, 2, 1, 0, 1, 0, 1},{3, 0, 1, 2, 2, 1, 0, 1, 0, 2, 3, 3, 0, 2, 3, 0, 1, 3},{18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 40}}; - -// Group of CNs with 6 BNs (CNG6) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG6[6][8] = {{114432, 103680, 115584, 104064, 115968, 116352, 104832, 117120},{68736, 69888, 55296, 86400, 104448, 71040, 17280, 72192},{83328, 56832, 58368, 71040, 84864, 28800, 59904, 46080},{40704, 41856, 56832, 96768, 40704, 58368, 43008, 59904},{18816, 84864, 71040, 30336, 86400, 86400, 72192, 87936},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG6[6][8] = {{0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 1, 2, 0, 0, 0, 0},{0, 0, 2, 1, 0, 1, 2, 0},{2, 2, 3, 0, 1, 0, 2, 0},{0, 3, 2, 3, 1, 3, 2, 3},{9, 12, 13, 14, 15, 16, 17, 20}}; - -// Group of CNs with 7 BNs (CNG7) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG7[7][5] = {{112512, 102144, 114048, 114816, 115200},{100992, 28800, 102912, 84864, 103296},{45312, 45696, 83328, 28800, 84864},{80256, 81792, 55296, 56832, 69888},{38400, 39552, 68736, 55296, 96384},{52224, 53760, 96000, 69888, 21120},{0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG7[7][5] = {{0, 0, 0, 0, 0},{0, 0, 0, 2, 0},{0, 0, 1, 2, 1},{0, 0, 0, 2, 1},{1, 1, 1, 3, 0},{1, 1, 0, 2, 1},{3, 6, 8, 10, 11}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG7[7][3] = {{53376, 49536, 54912},{48384, 13440, 50304},{22656, 25344, 43392},{22656, 25344, 43392},{22656, 25344, 43392},{22656, 25344, 43392},{0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG7[7][3] = {{0, 0, 0},{0, 0, 0},{1, 1, 0},{2, 2, 1},{3, 3, 3},{4, 4, 5},{3, 6, 8}}; - -// Group of CNs with 8 BNs (CNG8) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG8[8][2] = {{111744, 113664},{100608, 102528},{66432, 83328},{80256, 55296},{52224, 68736},{66432, 83328},{80256, 18432},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG8[8][2] = {{0, 0},{0, 0},{0, 2},{2, 2},{2, 2},{2, 3},{3, 0},{1, 7}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG8[8][2] = {{52608, 54528},{48000, 49920},{22656, 43392},{37248, 43392},{37248, 43392},{37248, 43392},{37248, 8064},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG8[8][2] = {{0, 0},{0, 0},{0, 2},{2, 4},{4, 6},{6, 7},{7, 3},{1, 7}}; - -// Group of CNs with 9 BNs (CNG9) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG9[9][2] = {{112128, 113280},{38400, 101760},{80256, 81792},{52224, 53760},{66432, 67584},{52224, 53760},{95232, 95616},{38400, 39552},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG9[9][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{1, 1},{3, 3},{0, 0},{2, 2},{2, 5}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG9[9][2] = {{52992, 54144},{13440, 49152},{37248, 40320},{37248, 40320},{37248, 40320},{22656, 25344},{37248, 40320},{22656, 25344},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG9[9][2] = {{0, 0},{1, 0},{0, 0},{1, 1},{3, 3},{5, 5},{5, 5},{6, 6},{2, 5}}; - -// Group of CNs with 10 BNs (CNG10) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG10[10][1] = {{112896},{101376},{67584},{81792},{53760},{28800},{67584},{81792},{21120},{0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG10[10][1] = {{0},{0},{0},{2},{2},{3},{2},{3},{0},{4}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG10[10][1] = {{53760},{48768},{25344},{40320},{40320},{13440},{40320},{40320},{8064},{0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG10[10][1] = {{0},{0},{0},{2},{4},{2},{6},{7},{4},{4}}; - -// Group of CNs with 19 BNs (CNG19) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG19[19][4] = {{109824, 110208, 110592, 110976},{99072, 25728, 99456, 99840},{24192, 64128, 27264, 65280},{62976, 44160, 44544, 44928},{16128, 16512, 16896, 37248},{34944, 75648, 36096, 78720},{24192, 34944, 77184, 37248},{75648, 25728, 36096, 78720},{47616, 49152, 27264, 50688},{75648, 77184, 77184, 78720},{62976, 47616, 64128, 65280},{24192, 25728, 49152, 50688},{47616, 49152, 27264, 50688},{94080, 47616, 49152, 50688},{24192, 25728, 94464, 94848},{34944, 64128, 27264, 37248},{62976, 77184, 36096, 65280},{75648, 18048, 20352, 78720},{17664, 19584, 19584, 20352}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{1, 1, 0, 1},{1, 1, 1, 1},{0, 0, 1, 0},{2, 2, 1, 2},{1, 1, 1, 1},{2, 2, 1, 1},{2, 2, 2, 2},{0, 3, 3, 3},{3, 3, 0, 0},{2, 2, 3, 2},{2, 3, 2, 2},{3, 0, 0, 3},{0, 0, 1, 1}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG19[19][4] = {{50688, 51072, 51456, 51840},{46464, 11136, 46848, 47232},{9984, 17280, 12288, 19968},{14592, 14592, 17280, 19968},{4224, 6144, 8064, 12288},{9984, 14592, 11136, 19968},{4224, 14592, 17280, 19968},{28032, 6144, 17280, 34176},{28032, 31104, 8064, 34176},{28032, 31104, 31104, 34176},{28032, 14592, 31104, 34176},{4224, 6144, 17280, 19968},{28032, 31104, 8064, 34176},{28032, 14592, 17280, 19968},{9984, 11136, 31104, 34176},{14592, 31104, 12288, 19968},{28032, 31104, 17280, 34176},{28032, 6144, 6144, 34176},{4224, 4224, 3456, 3840}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 1, 1, 1},{0, 0, 0, 1},{1, 2, 1, 2},{1, 3, 2, 3},{0, 1, 3, 0},{1, 1, 1, 1},{2, 2, 0, 2},{3, 4, 3, 3},{2, 2, 4, 4},{4, 4, 2, 4},{5, 5, 5, 5},{2, 2, 5, 5},{6, 6, 2, 6},{6, 7, 6, 6},{7, 3, 4, 7},{3, 4, 0, 0}}; -// R89 -static const uint32_t startAddrBnProcBuf_BG1_R89_CNG19[19][4] = {{28416, 28800, 29184, 29568},{26880, 10752, 27264, 27648},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 1536, 1536, 18816},{384, 384, 384, 1536}}; -static const uint8_t bnPosBnProcBuf_BG1_R89_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 1, 0, 1},{1, 2, 2, 2},{3, 3, 3, 4},{4, 5, 4, 5},{7, 6, 5, 6},{8, 7, 6, 8},{9, 9, 7, 9},{10, 10, 8, 10},{11, 12, 11, 11},{13, 13, 12, 12},{14, 14, 13, 14},{16, 15, 15, 15},{17, 17, 16, 16},{18, 19, 17, 18},{19, 20, 18, 19},{20, 0, 1, 20},{0, 1, 2, 2}}; - -// BG2 -// CNG3 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG3[3][6] = {{72960, 64128, 64512, 64896, 74112, 31872},{34176, 49536, 23040, 17664, 40320, 41088},{0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 1, 0, 0},{18, 21, 23, 25, 27, 33}}; -// CNG4 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG4[4][20] = {{59520, 60672, 70272, 62208, 62592, 62976, 72576, 63360, 63744, 73344, 73728, 65280, 36096, 65664, 74496, 66048, 74880, 66432, 36864, 75264},{67968, 69120, 16896, 29568, 22656, 72192, 16896, 20352, 17664, 34560, 35328, 50688, 45696, 31872, 51072, 36480, 51456, 46464, 32640, 51840},{52992, 28032, 54912, 55680, 44544, 30336, 56832, 39552, 49152, 25728, 49920, 31104, 31104, 40704, 57216, 46080, 57600, 32640, 41472, 57984},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},{0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},{0, 4, 8, 11, 14, 15, 16, 17, 19, 20, 24, 28, 29, 30, 31, 32, 34, 35, 36, 37}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG4[4][8] = {{36096, 37248, 43776, 38784, 39168, 39552, 46080, 39936},{41472, 42624, 9984, 20352, 22272, 45696, 9984, 22272},{30720, 11520, 32640, 33408, 29568, 22272, 34560, 26496},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG4[4][8] = {{0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 4, 1, 0, 1, 2},{0, 0, 0, 0, 0, 4, 0, 0},{0, 4, 8, 11, 14, 15, 16, 17}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG4[4][1] = {{18816},{16128},{15360},{0}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG4[4][1] = {{0},{0},{1},{0}}; -// CNG5 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG5[5][9] = {{69504, 61056, 61440, 61824, 71040, 71424, 71808, 34944, 35712},{19584, 69888, 44160, 70656, 22272, 25344, 48768, 44928, 50304},{28800, 21888, 24960, 19968, 55296, 56064, 56448, 30336, 45312},{54528, 43776, 38400, 38784, 39168, 28800, 29568, 39936, 26112},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 1, 0},{0, 0, 0, 0, 0, 1, 1, 0, 0},{5, 6, 7, 9, 10, 12, 13, 22, 26}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG5[5][7] = {{43008, 37632, 38016, 38400, 44544, 44928, 45312},{18432, 43392, 29184, 44160, 20352, 22272, 22272},{18432, 18432, 20352, 20352, 33024, 33792, 34176},{32256, 28800, 25344, 25728, 26112, 11904, 12288},{0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG5[5][7] = {{0, 0, 0, 0, 0, 0, 0},{2, 0, 0, 0, 1, 3, 0},{4, 1, 3, 2, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0},{5, 6, 7, 9, 10, 12, 13}}; -// R23 -// none -// CNG6 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG6[6][3] = {{59904, 60288, 68736},{68352, 48000, 48384},{47616, 43008, 43392},{42624, 24576, 54144},{53376, 53760, 38016},{0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG6[6][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{1, 2, 3}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG6[6][3] = {{36480, 36864, 42240},{41856, 18432, 20352},{16512, 28032, 28416},{27648, 18432, 31872},{31104, 31488, 24960},{0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG6[6][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 3, 0},{0, 0, 0},{1, 2, 3}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG6[6][2] = {{19200, 19584},{16896, 12672},{11520, 12672},{11520, 12672},{16128, 16896},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG6[6][2] = {{0, 0},{0, 0},{0, 1},{1, 2},{1, 1},{1, 2}}; -// CNG8 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG8[8][2] = {{58368, 59136},{66816, 67200},{33408, 16128},{14592, 15360},{20736, 18816},{23424, 27264},{26496, 27264},{52224, 37248}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{0, 0},{0, 0},{0, 1},{0, 0}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG8[8][2] = {{34944, 35712},{40320, 40704},{6912, 9216},{7680, 8448},{12672, 14592},{12672, 14592},{12672, 11136},{29952, 24192}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{1, 2},{3, 4},{4, 0},{0, 0}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG8[8][2] = {{17664, 18432},{13824, 14592},{1152, 7296},{3456, 5376},{3456, 5376},{9216, 5376},{3456, 2304},{13824, 1152}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{2, 3},{2, 4},{4, 1},{1, 2}}; -// CNG10 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG10[10][2] = {{58752, 67584},{15360, 33792},{14592, 16128},{46848, 47232},{21120, 21504},{41856, 42240},{18432, 19200},{23808, 24192},{52608, 28032},{26496, 37632}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{1, 0}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG10[10][2] = {{35328, 41088},{8448, 7296},{7680, 9216},{12672, 14592},{14592, 16512},{26880, 27264},{12672, 16512},{14592, 16512},{30336, 16512},{10752, 24576}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{1, 1},{0, 0},{2, 2},{3, 3},{0, 4},{0, 0}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG10[10][2] = {{18048, 15360},{5376, 2304},{3456, 7296},{9216, 10368},{5376, 7296},{9216, 10368},{3456, 7296},{10368, 11520},{14592, 7296},{1152, 2304}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{2, 2},{1, 1},{3, 3},{2, 2},{1, 4},{1, 2}}; - -// LUT for llr2llrProcBuf -// BG1 -// R13 -static const uint16_t llr2llrProcBufAddr_BG1_R13[26] = {25728,25344,17664,22272,20352,16128,19200,23424,19200,17664,23424,20736,23424,22272,20736,17664,20736,20736,24960,17664,19200,22272,23424,16512,16896,16896}; -static const uint8_t llr2llrProcBufBnPos_BG1_R13[26] = {0,0,0,0,0,0,0,0,1,1,1,0,2,1,1,2,2,3,0,3,2,2,3,0,0,1}; -// R23 -static const uint16_t llr2llrProcBufAddr_BG1_R23[26] = {13056,12672,5760,6912,6912,3840,5760,6912,6912,3840,9600,9600,9600,9600,6912,3840,9600,6912,9600,5760,6912,9600,9600,3840,3840,3456}; -static const uint8_t llr2llrProcBufBnPos_BG1_R23[26] = {0,0,0,0,1,0,1,2,3,1,0,1,2,3,4,2,4,5,5,2,6,6,7,3,4,0}; -// R89 -static const uint16_t llr2llrProcBufAddr_BG1_R89[26] = {9984,9600,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,384,384,384}; -static const uint8_t llr2llrProcBufBnPos_BG1_R89[26] = {0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,0,1,2}; - -// BG2 -// R15 -static const uint16_t llr2llrProcBufAddr_BG2_R15[14] = {19200,19584,17280,14592,14592,18432,15744,18048,15360,16128,16512,18816,16512,17664}; -static const uint8_t llr2llrProcBufBnPos_BG2_R15[14] = {0,0,0,0,1,0,0,0,0,0,0,0,1,0}; -// R13 -static const uint16_t llr2llrProcBufAddr_BG2_R13[14] = {11520,11904,6912,7296,7296,8448,8448,10752,8448,8448,8448,11136,8064,10368}; -static const uint8_t llr2llrProcBufBnPos_BG2_R13[14] = {0,0,0,0,1,0,1,0,2,3,4,0,0,0}; -// R23 -static const uint16_t llr2llrProcBufAddr_BG2_R23[14] = {6144,5376,1152,2304,2304,4224,2304,4224,2304,4224,2304,5376,1152,1152}; -static const uint8_t llr2llrProcBufBnPos_BG2_R23[14] = {0,0,0,0,1,0,2,1,3,2,4,1,1,2}; - -// LUT for llr2cnProcBuf -// LUTs are not rate dependent, however the number of CN in a CNG varies with rate -// CNG3 -// BG1 -static const uint8_t posBnInCnProcBuf_BG1_CNG3[3][1] = {{0},{1},{26}}; -// CNG4 -static const uint8_t posBnInCnProcBuf_BG1_CNG4[4][5] = {{1, 1, 0, 0, 1},{6, 13, 8, 4, 6},{8, 23, 17, 24, 10},{49, 59, 62, 64, 67}}; -// CNG5 -static const uint8_t posBnInCnProcBuf_BG1_CNG5[5][18] = {{0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0},{12, 2, 6, 2, 4, 14, 10, 7, 12, 2, 7, 6, 14, 9, 3, 3, 16, 7},{13, 10, 7, 4, 19, 18, 13, 22, 14, 11, 15, 12, 15, 10, 7, 9, 18, 9},{17, 18, 14, 15, 21, 25, 24, 25, 24, 21, 17, 22, 18, 12, 19, 18, 25, 22},{44, 45, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 63, 65, 66}}; -// CNG6 -static const uint8_t posBnInCnProcBuf_BG1_CNG6[6][8] = {{0, 1, 0, 1, 0, 0, 1, 0},{3, 3, 14, 12, 1, 3, 5, 3},{7, 11, 16, 13, 7, 9, 16, 4},{20, 20, 17, 18, 8, 11, 20, 11},{23, 22, 21, 19, 10, 22, 21, 22},{35, 38, 39, 40, 41, 42, 43, 46}}; -// CNG7 -static const uint8_t posBnInCnProcBuf_BG1_CNG7[7][5] = {{0, 1, 0, 0, 0},{1, 2, 1, 12, 1},{4, 4, 10, 15, 10},{7, 7, 11, 16, 13},{8, 8, 13, 17, 18},{14, 14, 18, 21, 25},{29, 32, 34, 36, 37}}; -// CNG8 -static const uint8_t posBnInCnProcBuf_BG1_CNG8[8][2] = {{0, 0},{1, 1},{3, 12},{12, 16},{16, 21},{21, 22},{22, 23},{27, 33}}; -// CNG9 -static const uint8_t posBnInCnProcBuf_BG1_CNG9[9][2] = {{0, 0},{6, 1},{10, 10},{11, 11},{13, 13},{17, 17},{18, 18},{20, 20},{28, 31}}; -// CNG10 -static const uint8_t posBnInCnProcBuf_BG1_CNG10[10][1] = {{0},{1},{3},{12},{16},{19},{21},{22},{24},{30}}; -// CNG19 -static const uint8_t posBnInCnProcBuf_BG1_CNG19[19][4] = {{0, 0, 0, 0},{1, 2, 1, 1},{2, 3, 2, 3},{3, 4, 4, 4},{5, 5, 5, 6},{6, 7, 6, 7},{9, 8, 7, 8},{10, 9, 8, 10},{11, 11, 9, 11},{12, 12, 10, 12},{13, 14, 13, 13},{15, 15, 14, 14},{16, 16, 15, 16},{18, 17, 17, 17},{19, 19, 18, 18},{20, 21, 19, 20},{21, 22, 20, 21},{22, 23, 24, 22},{23, 24, 25, 25}}; - -// BG2 -static const uint8_t posBnInCnProcBuf_BG2_CNG3[3][6] = {{1, 0, 0, 0, 1, 10},{2, 5, 6, 4, 13, 13},{32, 35, 37, 39, 41, 47}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG4[4][20] = {{0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 2, 0, 1, 0, 1, 0, 2, 1},{1, 1, 3, 10, 6, 1, 4, 8, 3, 2, 2, 5, 7, 12, 5, 2, 5, 7, 10, 5},{11, 12, 11, 11, 7, 10, 11, 13, 5, 9, 5, 12, 10, 13, 11, 7, 11, 12, 13, 11},{14, 18, 22, 25, 28, 29, 30, 31, 33, 34, 38, 42, 43, 44, 45, 46, 48, 49, 50, 51}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG5[5][9] = {{1, 0, 0, 0, 1, 1, 1, 2, 2},{8, 1, 7, 1, 6, 9, 5, 7, 5},{10, 6, 9, 8, 11, 11, 11, 12, 7},{11, 7, 13, 13, 13, 12, 12, 13, 9},{19, 20, 21, 23, 24, 26, 27, 36, 40}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG6[6][3] = {{0, 0, 1},{1, 5, 5},{5, 7, 7},{7, 9, 11},{11, 11, 13},{15, 16, 17}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG8[8][2] = {{0, 0},{1, 1},{2, 3},{3, 4},{6, 8},{9, 10},{10, 12},{11, 13}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG10[10][2] = {{0, 1},{3, 2},{4, 4},{5, 5},{6, 6},{7, 7},{8, 8},{9, 9},{11, 10},{12, 13}}; - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_mPass.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_mPass.h deleted file mode 100644 index f2373c6341..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_mPass.h +++ /dev/null @@ -1,1213 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_mPass.h - * \brief Defines the functions for message passing - * -*/ -#ifndef __NR_LDPC_MPASS__H__ -#define __NR_LDPC_MPASS__H__ - -#include -#include "nrLDPCdecoder_defs.h" -//#include -/** - \brief Circular memcpy1 - |<- rem->|<- circular shift ->| - (src) str2 = |--------xxxxxxxxxxxxxxxxxxxxx| - \_______________ - \ - (dst) str1 = |xxxxxxxxxxxxxxxxxxxxx---------| - \param str1 Pointer to the start of the destination buffer - \param str2 Pointer to the source buffer - \param Z Lifting size - \param cshift Circular shift -*/ -//more faster memcpy by using "rep movsb", which on modern processors is highly optimized - -void *memcpy1(void *dst, const void *src, size_t n) -{ - void *ret = dst; - asm volatile("rep movsb" : "+D" (dst) : "c"(n), "S"(src) : "cc", "memory"); - return ret; -} - - -static inline void *nrLDPC_inv_circ_memcpy1(int8_t *str1, const int8_t *str2, uint16_t Z, uint16_t cshift) -{ - uint16_t rem = Z - cshift; - memcpy1(str1+cshift, str2 , rem); - memcpy1(str1 , str2+rem, cshift); - - return(str1); -} - -/** - \brief Inverse circular memcpy1 - |<- circular shift ->|<- rem->| - (src) str2 = |xxxxxxxxxxxxxxxxxxxx\--------| - \ - (dst) str1 = |--------xxxxxxxxxxxxxxxxxxxxx| - \param str1 Pointer to the start of the destination buffer - \param str2 Pointer to the source buffer - \param Z Lifting size - \param cshift Circular shift -*/ -static inline void *nrLDPC_circ_memcpy1(int8_t *str1, const int8_t *str2, uint16_t Z, uint16_t cshift) -{ - uint16_t rem = Z - cshift; - memcpy1(str1 , str2+cshift, rem); - memcpy1(str1+rem , str2 , cshift); - - return(str1); -} - -/** - \brief Copies the input LLRs to their corresponding place in the LLR processing buffer. - Example: BG2 - | 0| 0| LLRs --> | - BN Groups |22|23|10| 5| 5|14| 7|13| 6| 8| 9|16| 9|12|1|1|...|1| - ^---------------------------------------/---- / - _________________________/ | / - / ____________________________|___/ - / / \ - LLR Proc Buffer (BNG) | 1| 5| 6| 7| 8| 9|10|12|13|14|16|22|23| - Number BN in BNG(R15) |38| 2| 1| 1| 1| 2| 1| 1| 1| 1| 1| 1| 1| - Idx: 0 ^ ^ ^ - 38*384=14592 _____| ... | | - 50*384=19200 ----------------------------------- | - 51*384=19584 -------------------------------------- - - \param p_lut Pointer to decoder LUTs - \param llr Pointer to input LLRs - \param p_procBuf Pointer the processing buffers - \param Z Lifting size - \param BG Base graph -*/ -static inline void nrLDPC_llr2llrProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z, uint8_t BG) -{ - uint32_t i; - const uint8_t numBn2CnG1 = p_lut->numBnInBnGroups[0]; - uint32_t startColParity = (BG ==1 ) ? (NR_LDPC_START_COL_PARITY_BG1) : (NR_LDPC_START_COL_PARITY_BG2); - - uint32_t colG1 = startColParity*Z; - - const uint16_t* lut_llr2llrProcBufAddr = p_lut->llr2llrProcBufAddr; - const uint8_t* lut_llr2llrProcBufBnPos = p_lut->llr2llrProcBufBnPos; - - uint32_t idxBn; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - // Copy LLRs connected to 1 CN - if (numBn2CnG1 > 0) - { - memcpy1(&llrProcBuf[0], &llr[colG1], numBn2CnG1*Z); - } - - // First 2 columns might be set to zero directly if it's true they always belong to the groups with highest number of connected CNs... - for (i=0; icircShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint8_t (*lut_posBnInCnProcBuf_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->posBnInCnProcBuf[0]; - const uint8_t (*lut_posBnInCnProcBuf_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->posBnInCnProcBuf[1]; - const uint8_t (*lut_posBnInCnProcBuf_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->posBnInCnProcBuf[2]; - const uint8_t (*lut_posBnInCnProcBuf_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->posBnInCnProcBuf[3]; - const uint8_t (*lut_posBnInCnProcBuf_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->posBnInCnProcBuf[4]; - const uint8_t (*lut_posBnInCnProcBuf_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->posBnInCnProcBuf[5]; - const uint8_t (*lut_posBnInCnProcBuf_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->posBnInCnProcBuf[6]; - const uint8_t (*lut_posBnInCnProcBuf_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->posBnInCnProcBuf[7]; - const uint8_t (*lut_posBnInCnProcBuf_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->posBnInCnProcBuf[8]; - - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - uint32_t i; - uint32_t j; - - uint32_t idxBn = 0; - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - -// #pragma omp simd -// #pragma omp parallel for schedule(dynamic) - - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - - idxBn = lut_posBnInCnProcBuf_CNG3[j][0]*Z; - - nrLDPC_circ_memcpy1(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - - for (j=0; j<4; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - - for (i=0; i | - BN Groups |22|23|10| 5| 5|14| 7|13| 6| 8| 9|16| 9|12|1|1|...|1| - - - CN Processing Buffer (CNGs) | 3| 4| 5| 6| 8|10| - Number of CN per CNG (R15) | 6|20| 9| 3| 2| 2| - 0 ^ ^\ \ - 3*6*384=6912 _________| || \_____________ - (3*6+4*20+5*9)*384=54912____|| \ - Bit | 1| 2| 3| 4| 5| 6| - 3*Z CNs>| |< - ^ - 54912 + 3*384______| - - \param p_lut Pointer to decoder LUTs - \param llr Pointer to input LLRs - \param p_procBuf Pointer to the processing buffers - \param Z Lifting size -*/ -static inline void nrLDPC_llr2CnProcBuf_BG2(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint8_t (*lut_posBnInCnProcBuf_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->posBnInCnProcBuf[0]; - const uint8_t (*lut_posBnInCnProcBuf_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->posBnInCnProcBuf[1]; - const uint8_t (*lut_posBnInCnProcBuf_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->posBnInCnProcBuf[2]; - const uint8_t (*lut_posBnInCnProcBuf_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->posBnInCnProcBuf[3]; - const uint8_t (*lut_posBnInCnProcBuf_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->posBnInCnProcBuf[4]; - const uint8_t (*lut_posBnInCnProcBuf_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->posBnInCnProcBuf[5]; - - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - uint32_t i; - uint32_t j; - - uint32_t idxBn = 0; - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0]; - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - - int8_t* p_cnProcBufRes; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - const uint32_t (*lut_startAddrBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint32_t(*)[lut_numCnInCnGroups[6]]) p_lut->startAddrBnProcBuf[6]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7]; - const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - const uint8_t (*lut_bnPosBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint8_t(*)[lut_numCnInCnGroups[6]]) p_lut->bnPosBnProcBuf[6]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint8_t(*)[lut_numCnInCnGroups[7]]) p_lut->bnPosBnProcBuf[7]; - const uint8_t (*lut_bnPosBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint8_t(*)[lut_numCnInCnGroups[8]]) p_lut->bnPosBnProcBuf[8]; - - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - - int8_t* p_cnProcBufRes; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - nrLDPC_inv_circ_memcpy1(&bnProcBuf[lut_startAddrBnProcBuf_CNG3[j][0]],p_cnProcBufRes,Z,lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - - for (j=0; j<4; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0]; - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // For CN groups 3 to 6 no need to send the last BN back since it's single edge - // and BN processing does not change the value already in the CN proc buf - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<2; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - const uint32_t (*lut_startAddrBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint32_t(*)[lut_numCnInCnGroups[6]]) p_lut->startAddrBnProcBuf[6]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7]; - const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - const uint8_t (*lut_bnPosBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint8_t(*)[lut_numCnInCnGroups[6]]) p_lut->bnPosBnProcBuf[6]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint8_t(*)[lut_numCnInCnGroups[7]]) p_lut->bnPosBnProcBuf[7]; - const uint8_t (*lut_bnPosBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint8_t(*)[lut_numCnInCnGroups[8]]) p_lut->bnPosBnProcBuf[8]; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // For CN groups 3 to 19 no need to send the last BN back since it's single edge - // and BN processing does not change the value already in the CN proc buf - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; -// #pragma omp simd - for (j=0;j<2; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - nrLDPC_circ_memcpy1(p_cnProcBuf, &bnProcBufRes[lut_startAddrBnProcBuf_CNG3[j][0]], Z, lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - // #pragma omp simd - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - // #pragma omp simd - for (i=0; inumBnInBnGroups[0]; - uint32_t startColParity = (BG ==1 ) ? (NR_LDPC_START_COL_PARITY_BG1) : (NR_LDPC_START_COL_PARITY_BG2); - - uint32_t colG1 = startColParity*Z; - - const uint16_t* lut_llr2llrProcBufAddr = p_lut->llr2llrProcBufAddr; - const uint8_t* lut_llr2llrProcBufBnPos = p_lut->llr2llrProcBufBnPos; - - int8_t* llrRes = p_procBuf->llrRes; - int8_t* p_llrOut = &llrOut[0]; - uint32_t idxBn; - - // Copy LLRs connected to 1 CN - if (numBn2CnG1 > 0) - { - memcpy1(&llrOut[colG1], llrRes, numBn2CnG1*Z); - } - - for (i=0; i - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_MPASS__H__ -#define __NR_LDPC_MPASS__H__ - -#include -#include "nrLDPCdecoder_defs.h" -//#include -/** - \brief Circular memcpy - |<- rem->|<- circular shift ->| - (src) str2 = |--------xxxxxxxxxxxxxxxxxxxxx| - \_______________ - \ - (dst) str1 = |xxxxxxxxxxxxxxxxxxxxx---------| - \param str1 Pointer to the start of the destination buffer - \param str2 Pointer to the source buffer - \param Z Lifting size - \param cshift Circular shift -*/ -static inline void *nrLDPC_inv_circ_memcpy(int8_t *str1, const int8_t *str2, uint16_t Z, uint16_t cshift) -{ - uint16_t rem = Z - cshift; - memcpy(str1+cshift, str2 , rem); - memcpy(str1 , str2+rem, cshift); - - return(str1); -} - -/** - \brief Inverse circular memcpy - |<- circular shift ->|<- rem->| - (src) str2 = |xxxxxxxxxxxxxxxxxxxx\--------| - \ - (dst) str1 = |--------xxxxxxxxxxxxxxxxxxxxx| - \param str1 Pointer to the start of the destination buffer - \param str2 Pointer to the source buffer - \param Z Lifting size - \param cshift Circular shift -*/ -static inline void *nrLDPC_circ_memcpy(int8_t *str1, const int8_t *str2, uint16_t Z, uint16_t cshift) -{ - uint16_t rem = Z - cshift; - memcpy(str1 , str2+cshift, rem); - memcpy(str1+rem , str2 , cshift); - - return(str1); -} - -/** - \brief Copies the input LLRs to their corresponding place in the LLR processing buffer. - Example: BG2 - | 0| 0| LLRs --> | - BN Groups |22|23|10| 5| 5|14| 7|13| 6| 8| 9|16| 9|12|1|1|...|1| - ^---------------------------------------/---- / - _________________________/ | / - / ____________________________|___/ - / / \ - LLR Proc Buffer (BNG) | 1| 5| 6| 7| 8| 9|10|12|13|14|16|22|23| - Number BN in BNG(R15) |38| 2| 1| 1| 1| 2| 1| 1| 1| 1| 1| 1| 1| - Idx: 0 ^ ^ ^ - 38*384=14592 _____| ... | | - 50*384=19200 ----------------------------------- | - 51*384=19584 -------------------------------------- - - \param p_lut Pointer to decoder LUTs - \param llr Pointer to input LLRs - \param p_procBuf Pointer the processing buffers - \param Z Lifting size - \param BG Base graph -*/ -static inline void nrLDPC_llr2llrProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z, uint8_t BG) -{ - uint32_t i; - const uint8_t numBn2CnG1 = p_lut->numBnInBnGroups[0]; - uint32_t startColParity = (BG ==1 ) ? (NR_LDPC_START_COL_PARITY_BG1) : (NR_LDPC_START_COL_PARITY_BG2); - - uint32_t colG1 = startColParity*Z; - - const uint16_t* lut_llr2llrProcBufAddr = p_lut->llr2llrProcBufAddr; - const uint8_t* lut_llr2llrProcBufBnPos = p_lut->llr2llrProcBufBnPos; - - uint32_t idxBn; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - // Copy LLRs connected to 1 CN - if (numBn2CnG1 > 0) - { - memcpy(&llrProcBuf[0], &llr[colG1], numBn2CnG1*Z); - } - - // First 2 columns might be set to zero directly if it's true they always belong to the groups with highest number of connected CNs... - for (i=0; icircShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint8_t (*lut_posBnInCnProcBuf_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->posBnInCnProcBuf[0]; - const uint8_t (*lut_posBnInCnProcBuf_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->posBnInCnProcBuf[1]; - const uint8_t (*lut_posBnInCnProcBuf_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->posBnInCnProcBuf[2]; - const uint8_t (*lut_posBnInCnProcBuf_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->posBnInCnProcBuf[3]; - const uint8_t (*lut_posBnInCnProcBuf_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->posBnInCnProcBuf[4]; - const uint8_t (*lut_posBnInCnProcBuf_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->posBnInCnProcBuf[5]; - const uint8_t (*lut_posBnInCnProcBuf_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->posBnInCnProcBuf[6]; - const uint8_t (*lut_posBnInCnProcBuf_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->posBnInCnProcBuf[7]; - const uint8_t (*lut_posBnInCnProcBuf_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint8_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->posBnInCnProcBuf[8]; - - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - uint32_t i; - uint32_t j; - - uint32_t idxBn = 0; - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - -// #pragma omp simd -// #pragma omp parallel for schedule(dynamic) - - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - - idxBn = lut_posBnInCnProcBuf_CNG3[j][0]*Z; - - nrLDPC_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - - for (j=0; j<4; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - - for (i=0; i | - BN Groups |22|23|10| 5| 5|14| 7|13| 6| 8| 9|16| 9|12|1|1|...|1| - - - CN Processing Buffer (CNGs) | 3| 4| 5| 6| 8|10| - Number of CN per CNG (R15) | 6|20| 9| 3| 2| 2| - 0 ^ ^\ \ - 3*6*384=6912 _________| || \_____________ - (3*6+4*20+5*9)*384=54912____|| \ - Bit | 1| 2| 3| 4| 5| 6| - 3*Z CNs>| |< - ^ - 54912 + 3*384______| - - \param p_lut Pointer to decoder LUTs - \param llr Pointer to input LLRs - \param p_procBuf Pointer to the processing buffers - \param Z Lifting size -*/ -static inline void nrLDPC_llr2CnProcBuf_BG2(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint8_t (*lut_posBnInCnProcBuf_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->posBnInCnProcBuf[0]; - const uint8_t (*lut_posBnInCnProcBuf_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->posBnInCnProcBuf[1]; - const uint8_t (*lut_posBnInCnProcBuf_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->posBnInCnProcBuf[2]; - const uint8_t (*lut_posBnInCnProcBuf_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->posBnInCnProcBuf[3]; - const uint8_t (*lut_posBnInCnProcBuf_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->posBnInCnProcBuf[4]; - const uint8_t (*lut_posBnInCnProcBuf_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->posBnInCnProcBuf[5]; - - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - uint32_t i; - uint32_t j; - - uint32_t idxBn = 0; - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0]; - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - - int8_t* p_cnProcBufRes; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - const uint32_t (*lut_startAddrBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint32_t(*)[lut_numCnInCnGroups[6]]) p_lut->startAddrBnProcBuf[6]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7]; - const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - const uint8_t (*lut_bnPosBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint8_t(*)[lut_numCnInCnGroups[6]]) p_lut->bnPosBnProcBuf[6]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint8_t(*)[lut_numCnInCnGroups[7]]) p_lut->bnPosBnProcBuf[7]; - const uint8_t (*lut_bnPosBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint8_t(*)[lut_numCnInCnGroups[8]]) p_lut->bnPosBnProcBuf[8]; - - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - - int8_t* p_cnProcBufRes; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - - for (j=0; j<3; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - nrLDPC_inv_circ_memcpy(&bnProcBuf[lut_startAddrBnProcBuf_CNG3[j][0]],p_cnProcBufRes,Z,lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - - for (j=0; j<4; j++) - { - p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0]; - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // For CN groups 3 to 6 no need to send the last BN back since it's single edge - // and BN processing does not change the value already in the CN proc buf - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; - - for (j=0; j<2; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0]; - const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; - const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG1_R13[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[2]]) p_lut->circShift[2]; - const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG1_R13[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[3]]) p_lut->circShift[3]; - const uint16_t (*lut_circShift_CNG7) [lut_numCnInCnGroups_BG1_R13[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[4]]) p_lut->circShift[4]; - const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG1_R13[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[5]]) p_lut->circShift[5]; - const uint16_t (*lut_circShift_CNG9) [lut_numCnInCnGroups_BG1_R13[6]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[6]]) p_lut->circShift[6]; - const uint16_t (*lut_circShift_CNG10)[lut_numCnInCnGroups_BG1_R13[7]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[7]]) p_lut->circShift[7]; - const uint16_t (*lut_circShift_CNG19)[lut_numCnInCnGroups_BG1_R13[8]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[8]]) p_lut->circShift[8]; - - const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0]; - const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1]; - const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2]; - const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3]; - const uint32_t (*lut_startAddrBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4]; - const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5]; - const uint32_t (*lut_startAddrBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint32_t(*)[lut_numCnInCnGroups[6]]) p_lut->startAddrBnProcBuf[6]; - const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7]; - const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8]; - - const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; - const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; - const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; - const uint8_t (*lut_bnPosBnProcBuf_CNG7) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4]; - const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5]; - const uint8_t (*lut_bnPosBnProcBuf_CNG9) [lut_numCnInCnGroups[6]] = (uint8_t(*)[lut_numCnInCnGroups[6]]) p_lut->bnPosBnProcBuf[6]; - const uint8_t (*lut_bnPosBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint8_t(*)[lut_numCnInCnGroups[7]]) p_lut->bnPosBnProcBuf[7]; - const uint8_t (*lut_bnPosBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint8_t(*)[lut_numCnInCnGroups[8]]) p_lut->bnPosBnProcBuf[8]; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - - int8_t* p_cnProcBuf; - uint32_t bitOffsetInGroup; - uint32_t i; - uint32_t j; - uint32_t idxBn = 0; - - // For CN groups 3 to 19 no need to send the last BN back since it's single edge - // and BN processing does not change the value already in the CN proc buf - - // ===================================================================== - // CN group with 3 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - // #pragma omp simd - for (j=0;j<2; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; - nrLDPC_circ_memcpy(p_cnProcBuf, &bnProcBufRes[lut_startAddrBnProcBuf_CNG3[j][0]], Z, lut_circShift_CNG3[j][0]); - } - - // ===================================================================== - // CN group with 4 BNs - - bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; - // #pragma omp simd - for (j=0; j<3; j++) - { - p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - // #pragma omp simd - for (i=0; inumBnInBnGroups[0]; - uint32_t startColParity = (BG ==1 ) ? (NR_LDPC_START_COL_PARITY_BG1) : (NR_LDPC_START_COL_PARITY_BG2); - - uint32_t colG1 = startColParity*Z; - - const uint16_t* lut_llr2llrProcBufAddr = p_lut->llr2llrProcBufAddr; - const uint8_t* lut_llr2llrProcBufBnPos = p_lut->llr2llrProcBufBnPos; - - int8_t* llrRes = p_procBuf->llrRes; - int8_t* p_llrOut = &llrOut[0]; - uint32_t idxBn; - - // Copy LLRs connected to 1 CN - if (numBn2CnG1 > 0) - { - memcpy(&llrOut[colG1], llrRes, numBn2CnG1*Z); - } - - for (i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - fprintf(fd,"void nrLDPC_bnProcPc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} -/* - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; -*/ - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - // uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - fprintf(fd," __m256i ymm0, ymm1, ymmRes0, ymmRes1; \n"); - - - fprintf(fd," __m128i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m128i* p_llrProcBuf;\n"); - fprintf(fd," __m256i* p_llrProcBuf256; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - - - - - - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 1 CNs \n"); - - // if (lut_numBnInBnGroups[1] > 0) - // { - // If elements in group move to next address -// idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrProcBuf256 = (__m256i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - - //for (i=0,j=0;i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - - // Loop over CNs - for (k=1; k<2; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 3 CNs - - -fprintf(fd, "// Process group with 3 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // ymm0 = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 4 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 5 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<6; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 7 CNs - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 8 CNs - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<8; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 10 CNs - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<10; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<11; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 12 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<12; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with 13 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<13; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 14 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<14; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 15 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<15; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 16 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<16; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<17; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<18; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 19 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<19; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 20 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<20; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<21; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 22 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<22; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with <23 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<23; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<24; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 25 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<25; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 26 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<26; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<27; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<28; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<29; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<30; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c deleted file mode 100644 index 68783ae0da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c +++ /dev/null @@ -1,1773 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - //fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z,ratestr[R]); - - fprintf(fd,"void nrLDPC_bnProcPc_BG2_Z%d_R%s_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z,ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - //BG1 - if (R==0) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; - } - else if (R==1) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; - } - else if (R==2) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; - } - - - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - // uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - fprintf(fd," __m256i ymm0, ymm1, ymmRes0, ymmRes1; \n"); - - - fprintf(fd," __m128i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m128i* p_llrProcBuf;\n"); - fprintf(fd," __m256i* p_llrProcBuf256; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - - - - - - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 1 CNs \n"); - - // if (lut_numBnInBnGroups[1] > 0) - // { - // If elements in group move to next address -// idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrProcBuf256 = (__m256i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - - //for (i=0,j=0;i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - - // Loop over CNs - for (k=1; k<2; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 3 CNs - - -fprintf(fd, "// Process group with 3 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // ymm0 = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 4 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 5 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<6; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 7 CNs - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 8 CNs - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<8; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 10 CNs - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<10; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<11; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 12 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<12; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with 13 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<13; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 14 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<14; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 15 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<15; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 16 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<16; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<17; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<18; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 19 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<19; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 20 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<20; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<21; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 22 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<22; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with <23 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<23; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<24; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 25 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<25; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 26 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<26; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<27; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<28; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<29; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<30; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c deleted file mode 100644 index 0fffb241af..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c +++ /dev/null @@ -1,1235 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - - - fprintf(fd," __m256i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - fprintf(fd," __m256i* p_res; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<2; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<3; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<4; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<5; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<6; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<7; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<8; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<9; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<10; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<11; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 12 CNs \n"); - - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<12; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 13 CNs \n"); - - - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<1; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 14 CNs \n"); - - - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<14; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 15 CNs \n"); - - - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<15; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 16 CNs \n"); - - - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<16; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<17; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<18; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 19 CNs \n"); - - - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<19; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 20 CNs \n"); - - - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<20; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<21; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 22 CNs \n"); - - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<22; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with <23 CNs \n"); - - - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<23; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<24; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 25 CNs \n"); - - - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<25; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 26 CNs \n"); - - - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<26; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<27; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<28; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<29; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<30; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 deleted file mode 100644 index 7f5110072d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 +++ /dev/null @@ -1,1235 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - - - fprintf(fd," __m256i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - fprintf(fd," __m256i* p_res; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<2; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<3; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<4; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<5; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<6; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<7; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<8; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<9; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<10; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<11; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 12 CNs \n"); - - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<12; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 13 CNs \n"); - - - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<1; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 14 CNs \n"); - - - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<14; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 15 CNs \n"); - - - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<15; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 16 CNs \n"); - - - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<16; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<17; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<18; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 19 CNs \n"); - - - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<19; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 20 CNs \n"); - - - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<20; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<21; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 22 CNs \n"); - - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<22; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with <23 CNs \n"); - - - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<23; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<24; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 25 CNs \n"); - - - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<25; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 26 CNs \n"); - - - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<26; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<27; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<28; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<29; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<30; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c deleted file mode 100644 index d36aa8e21b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c +++ /dev/null @@ -1,1232 +0,0 @@ -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - fprintf(fd,"void nrLDPC_bnProc_BG2_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - - - fprintf(fd," __m256i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - fprintf(fd," __m256i* p_res; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<2; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<3; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<4; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<5; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<6; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<7; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<8; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<9; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<10; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<11; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 12 CNs \n"); - - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<12; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 13 CNs \n"); - - - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<1; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 14 CNs \n"); - - - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<14; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 15 CNs \n"); - - - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<15; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 16 CNs \n"); - - - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<16; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<17; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<18; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 19 CNs \n"); - - - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<19; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 20 CNs \n"); - - - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<20; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<21; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 22 CNs \n"); - - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<22; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 23 CNs \n"); - - - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<23; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<24; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 25 CNs \n"); - - - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<25; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 26 CNs \n"); - - - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<26; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<27; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<28; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<29; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<30; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 deleted file mode 100755 index 858e228f66..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/main.c deleted file mode 100644 index c1737098e9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/main.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include -#define NB_Z 51 -void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t,int); -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t,int); - - -int main() -{ - uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}; - - for(int i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX2(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R%s_AVX2.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - //__m256i* p_cnProcBuf; - //__m256i* p_cnProcBufRes; - - // Number of CNs in Groups - //uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - //__m256i ymm0, min, sgn; - //__m256i* p_cnProcBufResBit; - - // const __m256i* p_ones = (__m256i*) ones256_epi8; - // const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - // const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - fprintf(fd," __m256i ymm0, min, sgn,ones,maxLLR;\n"); - fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); - fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); - - fprintf(fd," uint32_t M;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 3 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG3[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); - - // Abs and sign of 32 CNs (first BN) - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]+1); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]+1); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG4[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG5[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 96 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG6[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 60 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG7[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG7[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG8[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG8[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 24 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[6] ); - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 9 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG9[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>5)+lut_idxCnProcG9[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[6]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 12 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - - - - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 10 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG10[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>5)+lut_idxCnProcG10[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[7]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 12 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 19 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG19[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>5)+lut_idxCnProcG19[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[8]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o deleted file mode 100644 index bb2aa672a6..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c deleted file mode 100644 index 6c4c603a7e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c +++ /dev/null @@ -1,429 +0,0 @@ -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" - - -void nrLDPC_cnProc_BG2_generator_AVX2(int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - -// system("mkdir -p ldpc_gen_files/avx2"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R%s_AVX2.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - // Number of CNs in Groups - //uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 byte - uint32_t bitOffsetInGroup; - - // Offsets are in units of bitOffsetInGroup (1*384/32) - // const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - - fprintf(fd," __m256i ymm0, min, sgn,ones,maxLLR;\n"); - fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); - fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); - fprintf(fd," uint32_t M;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG3[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); - - // Abs and sign of 32 CNs (first BN) - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]+1); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]+1); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - - // Offset is 20*384/32 = 240 - const uint16_t lut_idxCnProcG4[4][3] = {{240,480,720}, {0,480,720}, {0,240,720}, {0,240,480}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<4; j++) - { - - // Loop over CNs - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG4[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - - // Offset is 9*384/32 = 108 - 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}}; - - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] ); - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG5[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 3*384/32 = 36 - const uint16_t lut_idxCnProcG6[6][5] = {{36,72,108,144,180}, {0,72,108,144,180}, - {0,36,108,144,180}, {0,36,72,144,180}, - {0,36,72,108,180}, {0,36,72,108,144}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - - // Loop over CNs - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG6[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - 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}}; - - - - - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<8; j++) - { - - // Loop over CNs - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG8[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG8[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - - const uint8_t lut_idxCnProcG10[10][9] = {{24,48,72,96,120,144,168,192,216}, {0,48,72,96,120,144,168,192,216}, - {0,24,72,96,120,144,168,192,216}, {0,24,48,96,120,144,168,192,216}, - {0,24,48,72,120,144,168,192,216}, {0,24,48,72,96,144,168,192,216}, - {0,24,48,72,96,120,168,192,216}, {0,24,48,72,96,120,144,192,216}, - {0,24,48,72,96,120,144,168,216}, {0,24,48,72,96,120,144,168,192}}; - - - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<10; j++) - { - - // Loop over CNs - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG10[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG10[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG2 - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o deleted file mode 100644 index 95abb7b348..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 deleted file mode 100755 index 29fc76d279..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/main.c deleted file mode 100644 index 3086439a9e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/main.c +++ /dev/null @@ -1,20 +0,0 @@ - -#include -#include -#define NB_R 3 -void nrLDPC_cnProc_BG1_generator_AVX2(int); -void nrLDPC_cnProc_BG2_generator_AVX2(int); -int main() -{ - int R[NB_R]={0,1,2}; - for(int i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - // fprintf(fd,"#include \n"); -// fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // for (k=1; k<2; k++) - //{ - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - // } - - // Store result - // min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 9 BNs - - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<9; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - - - - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c deleted file mode 100644 index 9b8b36ba30..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c +++ /dev/null @@ -1,409 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG2_generator_AVX512(int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - //fprintf(fd,"#include \n"); -// fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - //fprintf(fd,"static inline void nrLDPC_cnProc_BG2_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes, uint16_t Z) {\n",Z,ratestr[R]); - fprintf(fd,"void nrLDPC_cnProc_BG2_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - // Number of CNs in Groups - //uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - fprintf(fd," uint32_t M;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<3; j++) - { - - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG3[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][0]/2)+1); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][1]/2)+1); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 20*384/32 = 240 - const uint16_t lut_idxCnProcG4[4][3] = {{240,480,720}, {0,480,720}, {0,240,720}, {0,240,480}}; - - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG4[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 9*384/32 = 108 - 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}}; - - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG5[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 3*384/32 = 36 - const uint16_t lut_idxCnProcG6[6][5] = {{36,72,108,144,180}, {0,72,108,144,180}, - {0,36,108,144,180}, {0,36,72,144,180}, - {0,36,72,108,180}, {0,36,72,108,144}}; - - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG6[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - 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}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG8[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - - const uint8_t lut_idxCnProcG10[10][9] = {{24,48,72,96,120,144,168,192,216}, {0,48,72,96,120,144,168,192,216}, - {0,24,72,96,120,144,168,192,216}, {0,24,48,96,120,144,168,192,216}, - {0,24,48,72,120,144,168,192,216}, {0,24,48,72,96,144,168,192,216}, - {0,24,48,72,96,120,168,192,216}, {0,24,48,72,96,120,144,192,216}, - {0,24,48,72,96,120,144,168,216}, {0,24,48,72,96,120,144,168,192}}; - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<10; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG10[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG2 - - - - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o deleted file mode 100644 index 7e811fdb42..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 deleted file mode 100755 index 6eae25907c..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/main.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/main.c deleted file mode 100644 index d3a3d16cd5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/main.c +++ /dev/null @@ -1,20 +0,0 @@ - -#include -#include -#define NB_R 3 -void nrLDPC_cnProc_BG1_generator_AVX512(int); -void nrLDPC_cnProc_BG2_generator_AVX512(int); -int main() -{ - int R[NB_R]={0,1,2}; - for(int i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (int i=0;i<%d;i+=2) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][0]/2)+1); - - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][1]/2)+1); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - // sgn = _mm512_sign_epi816(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn, zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c deleted file mode 100644 index 6f9036db18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c +++ /dev/null @@ -1,557 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn, zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today deleted file mode 100644 index a9dab4bf99..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today +++ /dev/null @@ -1,596 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - // Loop over every BN - - - - - for (j=0; j<3; j++) - { - - - // Set of results pointer to correct BN address - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][1]/2)); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native deleted file mode 100644 index f8de0dc0b7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native +++ /dev/null @@ -1,596 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - fprintf(fd," const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8;\n"); - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - // Loop over every BN - - - - - for (j=0; j<3; j++) - { - - - // Set of results pointer to correct BN address - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG3[j][1]/2); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",lut_idxCnProcG7[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG9[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG19[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled deleted file mode 100644 index 96002878a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled +++ /dev/null @@ -1,590 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - // Loop over every BN - - - - -fprintf(fd," for (int j=0;j<3;j++) {\n"); - - - // Set of results pointer to correct BN address - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][1]/2)); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - //for (j=0; j<4; j++) - // { - - fprintf(fd," for (int j=0;j<4;j++) {\n"); - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<5;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<6;j++) {\n"); - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<7;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<8;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - - // Set pointers to start of group - // Loop over every BN - - fprintf(fd," for (int j=0;j<9;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - fprintf(fd," for (int j=0;j<10;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<11;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c deleted file mode 100644 index 5c9e0ba2c8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z104_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c deleted file mode 100644 index 17386fca34..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z10_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c deleted file mode 100644 index 72f269a3fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z112_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c deleted file mode 100644 index 59f30be553..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z11_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index 400c04c430..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z120_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 6496593bd3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z128_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c deleted file mode 100644 index 0614cf505b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z12_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c deleted file mode 100644 index 785d554559..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z13_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index d91cb1b44e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z144_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index 07ba538e90..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z14_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index 78e3f8dc35..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z15_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index cc2d9fafd7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z160_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index 29ffb5058b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z16_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index e44d7cac94..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z176_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index 765ffaf0b1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z18_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index 436effce12..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z192_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index a043cee84d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z208_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 0acb046870..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z20_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 941f05c829..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z224_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index 3bedc1da39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z22_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 3e1fb14b16..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z240_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index a1a9e7c746..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z24_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 95b6662869..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z256_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index d67252e70d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z26_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 88b1453acd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z288_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index dab5d50a75..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z28_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c deleted file mode 100644 index b5b4329183..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 82b7429182..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z30_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index c1243fe104..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z320_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 6fbf2f7060..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z32_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index 54bf723732..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z352_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index 449662b84f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z36_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index c4fa11327f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z384_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index cd0ecff86e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z3_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index b0a1d96998..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z40_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 094471b418..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z44_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index b5384c2cd2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z48_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 1c664a4a07..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z4_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index ebea97e7a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z52_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index c24d31dc62..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z56_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index 3d0523df04..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z5_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index b69c8bfb2c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z60_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index 1c51ee482f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z64_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index bbe6ddcb3e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z6_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index f74cc89ad7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z72_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index 94f64d1fad..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z7_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index 931abd13c8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z80_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 4b88d79461..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z88_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 83032f55a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z8_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index 649308b2a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z96_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index e16be52cea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z9_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c deleted file mode 100644 index 6de8a73cfe..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z104_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c deleted file mode 100644 index da7eecd7c9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z10_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index 3613096240..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z112_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index ce583e8a49..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z11_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 9567913d4c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z120_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 3dcd56e4b2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z128_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index a1e7eef92d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z12_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index c604b9c9fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z13_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 3a6d5fad9b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z144_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 0a68dcc192..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z14_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index 5e1b4e5247..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z15_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index 301752c898..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z160_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 2ff4596dec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z16_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 25d44d65dd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z176_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index d035375329..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z18_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index fe808f0262..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z192_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index b80ad2550c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z208_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index bea168af3c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z20_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 6a897f6a58..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z224_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index 1686f075cd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z22_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index ff3f02c22c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z240_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index 3a824bf742..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z24_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index 1d251bfd7e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z256_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index 9c01cb69a0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z26_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index c48b6023d6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z288_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 4b02344ea4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z28_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c deleted file mode 100644 index 81694205f4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z2_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 1ca19efbea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z30_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index cb56abe439..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z320_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index d03e2e943e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z32_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index 6be4e10dd8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z352_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index 3e447f3a1a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z36_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index 2ac44f6c53..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z384_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c deleted file mode 100644 index 3b645790d4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z3_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index a9eb5dbb00..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z40_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index a6613ef66c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z44_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index d2a7c80bb0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z48_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c deleted file mode 100644 index ae4f4d922f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z4_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 3efa774165..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z52_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index f61d8ea7d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z56_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c deleted file mode 100644 index 6528758122..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z5_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index d7a3be2173..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z60_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 58457add44..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z64_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index f9c2093489..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z6_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index 9d14029acc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z72_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index 188b6a94dd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z7_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index ac2c167b9a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z80_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 4d5ec0740c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z88_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index f4b84e4509..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z8_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 83a4a54c13..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z96_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index ed5464778a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z9_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c deleted file mode 100644 index 94b217187d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z104_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<137;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c deleted file mode 100644 index 160bce3117..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z10_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<14;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c deleted file mode 100644 index 0e753bfab3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z112_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<147;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c deleted file mode 100644 index 3a16eaa82f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z11_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<15;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index 673af9a9d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z120_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<158;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 9029ec4945..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<168;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c deleted file mode 100644 index eb63f40810..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z12_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<16;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c deleted file mode 100644 index 03b80c28e3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z13_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<18;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index 1e0e1bb9b4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z144_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<189;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index f8d5ba2422..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z14_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<19;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index c3bf9cd8c4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z15_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<20;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index 54aa60410d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z160_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<210;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index dbd57a29a2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z16_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<21;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index b33f7eff95..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z176_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<231;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<17;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<17;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index bfacf24f9e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z18_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<24;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index cb5e28d03b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<252;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index 26206a90ef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z208_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<273;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 47a80af761..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z20_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<27;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 429e77bb46..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z224_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<294;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<21;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<21;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index 5114d701ea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z22_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<29;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 0075be8dec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z240_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<315;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<23;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<23;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index 2a10721f55..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z24_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<32;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 32f7cc2f18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<336;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index ec50dbc7c6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z26_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<35;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 31c6264a07..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z288_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<378;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<27;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<27;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index 5f261e18df..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z28_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<37;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c deleted file mode 100644 index e77a0c287f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<3;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 9c40d68946..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z30_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<40;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index ad6d124bae..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z320_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<420;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 57401cbf41..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<42;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index 901bc03cd9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z352_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<462;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<33;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<33;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index 4799b8efbf..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z36_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<48;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index bccdf09c1e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<504;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index a458247cf1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z3_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<4;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index 79d4f4ae71..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z40_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<53;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 5e91ecb0c1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z44_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<58;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index 7e7af0c1ce..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<63;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 06e7bc8467..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z4_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<6;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index 6954acb650..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z52_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<69;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index dd4d169cb2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z56_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<74;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index c3943c0003..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z5_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<7;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index cd4c7ff1b9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z60_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<79;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index b9c661f6ca..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<84;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index c223a8b5b1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z6_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<8;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index 0711e1b370..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z72_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<95;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index 85384d8d39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z7_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<10;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index e7e4c7b6f4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z80_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<105;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 4d694f1874..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z88_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<116;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 548b9ab4aa..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z8_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<11;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index 8db0776e95..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<126;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index 44b8a15b39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z9_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<12;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c deleted file mode 100644 index f0ed3c3cd1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z104_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<124;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c deleted file mode 100644 index 06529a76d5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z10_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<12;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index d32d9f5a5a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z112_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<133;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index f4abd64e20..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z11_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<14;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 192f387978..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z120_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<143;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 7c87845b5b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<152;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index b640cc9b50..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z12_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<15;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index fc400c6368..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z13_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<16;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 8f10c6f9a6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z144_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<171;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 3f6be2d8b3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z14_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<17;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index 18433a0bb9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z15_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<18;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index a707e979a3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z160_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<190;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 2db176ef99..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z16_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<19;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 0a4986e855..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z176_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<209;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index 73ec5b7694..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z18_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<22;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index 57c3a14331..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<228;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index df3810a159..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z208_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<247;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index ccabb48171..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z20_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<24;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 3863cc0b78..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z224_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<266;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index e63c5fd552..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z22_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<27;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index 6502335168..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z240_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<285;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index bf727cb7da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z24_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<29;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index 21e3b405ee..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<304;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index aada1582fb..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z26_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<31;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index dbd644f48b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z288_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<342;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 465742e608..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z28_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<34;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c deleted file mode 100644 index e93cdfcf11..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z2_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<3;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 8d060b7c79..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z30_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<36;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index 92268f3d53..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z320_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<380;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index bfc4c0b52b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<38;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index 2c6cc7b6b0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z352_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<418;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index ed4a0100a9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z36_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<43;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index a5c0f02b5b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<456;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c deleted file mode 100644 index 43e8bcd7de..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z3_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<4;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index 24438b13cd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z40_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<48;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index 0f324af960..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z44_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<53;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index 9e88e7b0ed..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<57;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c deleted file mode 100644 index 12597e8f2f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z4_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<5;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 6b6566f36e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z52_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<62;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index b1cce64577..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z56_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<67;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c deleted file mode 100644 index 5991558809..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z5_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<6;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index 9c83e7d431..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z60_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<72;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 9dd53e1642..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<76;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index b7e769a154..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z6_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<8;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index 749b21d603..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z72_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<86;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index ba4a638274..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z7_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<9;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index b60d9c6ad4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z80_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<95;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 607d88744c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z88_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<105;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index 0aa77ce254..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z8_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<10;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 4239544706..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<114;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index 5c085b51c2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z9_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<11;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c deleted file mode 100644 index aa171558fd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c +++ /dev/null @@ -1,2346 +0,0 @@ -#include -#include -static inline void nrLDPC_cnProc_BG1_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R89_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R89_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (8*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (8*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R15_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (6*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R15_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (6*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -static inline void nrLDPC_cnProc_BG1_R13_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { - uint32_t M, i; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i* p_cnProcBufResBit; - __m512i* p_cnProcBufRes; - __m512i* p_cnProcBuf; - __m512i zmm0, min, sgn,zeros,maxLLR, ones; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - ones = _mm512_set1_epi8((char)1); -//Process group with 3 BNs - M = (1*Z + 63)>>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[0]; - p_cnProcBuf = (__m512i*) &cnProcBuf[0]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[1152]; - p_cnProcBuf = (__m512i*) &cnProcBuf[1152]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[8832]; - p_cnProcBuf = (__m512i*) &cnProcBuf[8832]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[43392]; - p_cnProcBuf = (__m512i*) &cnProcBuf[43392]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[61824]; - p_cnProcBuf = (__m512i*) &cnProcBuf[61824]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[75264]; - p_cnProcBuf = (__m512i*) &cnProcBuf[75264]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[81408]; - p_cnProcBuf = (__m512i*) &cnProcBuf[81408]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[88320]; - p_cnProcBuf = (__m512i*) &cnProcBuf[88320]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[92160]; - p_cnProcBuf = (__m512i*) &cnProcBuf[92160]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -static inline void nrLDPC_cnProc_BG1_R23_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { - uint32_t M, i; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i* p_cnProcBufResBit; - __m512i* p_cnProcBufRes; - __m512i* p_cnProcBuf; - __m512i zmm0, min, sgn,zeros,maxLLR, ones; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - ones = _mm512_set1_epi8((char)1); -//Process group with 3 BNs - M = (1*Z + 63)>>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[0]; - p_cnProcBuf = (__m512i*) &cnProcBuf[0]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[61824]; - p_cnProcBuf = (__m512i*) &cnProcBuf[61824]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[75264]; - p_cnProcBuf = (__m512i*) &cnProcBuf[75264]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[81408]; - p_cnProcBuf = (__m512i*) &cnProcBuf[81408]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[88320]; - p_cnProcBuf = (__m512i*) &cnProcBuf[88320]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[92160]; - p_cnProcBuf = (__m512i*) &cnProcBuf[92160]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -static inline void nrLDPC_cnProc_BG1_R89_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { - uint32_t M, i; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i* p_cnProcBufResBit; - __m512i* p_cnProcBufRes; - __m512i* p_cnProcBuf; - __m512i zmm0, min, sgn,zeros,maxLLR, ones; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - ones = _mm512_set1_epi8((char)1); -//Process group with 3 BNs - M = (1*Z + 63)>>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[0]; - p_cnProcBuf = (__m512i*) &cnProcBuf[0]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[92160]; - p_cnProcBuf = (__m512i*) &cnProcBuf[92160]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;icnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); -//Process group with 3 BNs -//Process group with 4 BNs - M = (8*Z + 63)>>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;icnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); -//Process group with 3 BNs - M = (20*Z + 63)>>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;icnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); -//Process group with 3 BNs -//Process group with 4 BNs - M = (1*Z + 63)>>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_DEBUG__H__ -#define __NR_LDPC_DEBUG__H__ - -#include - -/** - Enum with possible LDPC data buffers - */ -typedef enum nrLDPC_buffers { - nrLDPC_buffers_LLR_PROC, /**< LLR processing buffer */ - nrLDPC_buffers_CN_PROC, /**< CN processing buffer */ - nrLDPC_buffers_CN_PROC_RES, /**< CN processing results buffer */ - nrLDPC_buffers_BN_PROC, /**< BN processing buffer */ - nrLDPC_buffers_BN_PROC_RES, /**< BN processing results buffer */ - nrLDPC_buffers_LLR_RES /**< LLR results buffer */ -} e_nrLDPC_buffers; - -/** - \brief Writes N data samples to a file - \param fileName Name of the file - \param p_data Pointer to the data - \param N Number of values to write -*/ -static inline void nrLDPC_writeFile(const char* fileName, int8_t* p_data, const uint32_t N) -{ - FILE *f; - uint32_t i; - - f = fopen(fileName, "a"); - - // Newline indicating new data - fprintf(f, "\n"); - for (i=0; i < N; i++) - { - fprintf(f, "%d, ", p_data[i]); - } - - fclose(f); -} - -/** - \brief Creates empty new file - \param fileName Name of the file -*/ -static inline void nrLDPC_initFile(const char* fileName) -{ - FILE *f; - - f = fopen(fileName, "w"); - - fprintf(f, " "); - - fclose(f); -} - -/** - \brief Writes data of predefined buffers to file - \param buffer Enum of buffer name to write -*/ -static inline void nrLDPC_debug_writeBuffer2File(e_nrLDPC_buffers buffer, t_nrLDPC_procBuf* p_procBuf) -{ - switch (buffer) - { - case nrLDPC_buffers_LLR_PROC: - { - nrLDPC_writeFile("llrProcBuf.txt", p_procBuf->llrProcBuf, NR_LDPC_MAX_NUM_LLR); - break; - } - case nrLDPC_buffers_CN_PROC: - { - nrLDPC_writeFile("cnProcBuf.txt", p_procBuf->cnProcBuf, NR_LDPC_SIZE_CN_PROC_BUF); - break; - } - case nrLDPC_buffers_CN_PROC_RES: - { - nrLDPC_writeFile("cnProcBufRes.txt", p_procBuf->cnProcBufRes, NR_LDPC_SIZE_CN_PROC_BUF); - break; - } - case nrLDPC_buffers_BN_PROC: - { - nrLDPC_writeFile("bnProcBuf.txt", p_procBuf->bnProcBuf, NR_LDPC_SIZE_BN_PROC_BUF); - break; - } - case nrLDPC_buffers_BN_PROC_RES: - { - nrLDPC_writeFile("bnProcBufRes.txt", p_procBuf->bnProcBufRes, NR_LDPC_SIZE_BN_PROC_BUF); - break; - } - case nrLDPC_buffers_LLR_RES: - { - nrLDPC_writeFile("llrRes.txt", p_procBuf->llrRes, NR_LDPC_MAX_NUM_LLR); - break; - } - } -} - -/** - \brief Initializes file for writing a buffer - \param buffer Enum of buffer name to write -*/ -static inline void nrLDPC_debug_initBuffer2File(e_nrLDPC_buffers buffer) -{ - switch (buffer) - { - case nrLDPC_buffers_LLR_PROC: - { - nrLDPC_initFile("llrProcBuf.txt"); - break; - } - case nrLDPC_buffers_CN_PROC: - { - nrLDPC_initFile("cnProcBuf.txt"); - break; - } - case nrLDPC_buffers_CN_PROC_RES: - { - nrLDPC_initFile("cnProcBufRes.txt"); - break; - } - case nrLDPC_buffers_BN_PROC: - { - nrLDPC_initFile("bnProcBuf.txt"); - break; - } - case nrLDPC_buffers_BN_PROC_RES: - { - nrLDPC_initFile("bnProcBufRes.txt"); - break; - } - case nrLDPC_buffers_LLR_RES: - { - nrLDPC_initFile("llrRes.txt"); - break; - } - } -} - -/** - \brief Prints 256 data type - \param in Input to print -*/ -static inline void nrLDPC_debug_print256i_epi8(__m256i* in) -{ - uint32_t i; - - for (i=0; i<32; i++) - { - mexPrintf("%d ", ((int8_t*)&in)[i]); - } -} - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_types.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_types.h deleted file mode 100644 index b802e07104..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_types.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_types.h - * \brief Defines all types for the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_TYPES__H__ -#define __NR_LDPC_TYPES__H__ -#include "../../TOOLS/time_meas.h" -#include "nrLDPCdecoder_defs.h" -// ============================================================================== -// TYPES - -/** - Structure containing the pointers to the LUTs. - */ -typedef struct nrLDPC_lut { - const uint32_t* startAddrCnGroups; /**< Start addresses for CN groups in CN processing buffer */ - const uint8_t* numCnInCnGroups; /**< Number of CNs in every CN group */ - const uint8_t* numBnInBnGroups; /**< Number of CNs in every BN group */ - const uint32_t* startAddrBnGroups; /**< Start addresses for BN groups in BN processing buffer */ - const uint16_t* startAddrBnGroupsLlr; /**< Start addresses for BN groups in LLR processing buffer */ - const uint16_t** circShift[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT for circular shift values for all CN groups and Zs */ - const uint32_t** startAddrBnProcBuf[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT of start addresses of CN groups in BN proc buffer */ - const uint8_t** bnPosBnProcBuf[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT of BN positions in BG for CN groups */ - const uint16_t* llr2llrProcBufAddr; /**< LUT for transferring input LLRs to LLR processing buffer */ - const uint8_t* llr2llrProcBufBnPos; /**< LUT BN position in BG */ - const uint8_t** posBnInCnProcBuf[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT for llr2cnProcBuf */ -} t_nrLDPC_lut; - -/** - Enum with possible LDPC output formats. - */ -typedef enum nrLDPC_outMode { - nrLDPC_outMode_BIT, /**< 32 bits per uint32_t output */ - nrLDPC_outMode_BITINT8, /**< 1 bit per int8_t output */ - nrLDPC_outMode_LLRINT8 /**< Single LLR value per int8_t output */ -} e_nrLDPC_outMode; - -/** - Structure containing LDPC decoder parameters. - */ -typedef struct nrLDPC_dec_params { - uint8_t BG; /**< Base graph */ - uint16_t Z; /**< Lifting size */ - uint8_t R; /**< Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ - uint8_t numMaxIter; /**< Maximum number of iterations */ - e_nrLDPC_outMode outMode; /**< Output format */ -} t_nrLDPC_dec_params; - -/** - Structure containing LDPC decoder processing time statistics. - */ -typedef struct nrLDPC_time_stats { - time_stats_t llr2llrProcBuf; /**< Statistics for function llr2llrProcBuf */ - time_stats_t llr2CnProcBuf; /**< Statistics for function llr2CnProcBuf */ - time_stats_t cnProc; /**< Statistics for function cnProc */ - time_stats_t cnProcPc; /**< Statistics for function cnProcPc */ - time_stats_t bnProcPc; /**< Statistics for function bnProcPc */ - time_stats_t bnProc; /**< Statistics for function bnProc */ - time_stats_t cn2bnProcBuf; /**< Statistics for function cn2bnProcBuf */ - time_stats_t bn2cnProcBuf; /**< Statistics for function bn2cnProcBuf */ - time_stats_t llrRes2llrOut; /**< Statistics for function llrRes2llrOut */ - time_stats_t llr2bit; /**< Statistics for function llr2bit */ - time_stats_t total; /**< Statistics for total processing time */ -} t_nrLDPC_time_stats; - -/** - Structure containing the processing buffers - */ -typedef struct nrLDPC_procBuf { - int8_t* cnProcBuf; /**< CN processing buffer */ - int8_t* cnProcBufRes; /**< Buffer for CN processing results */ - int8_t* bnProcBuf; /**< BN processing buffer */ - int8_t* bnProcBufRes; /**< Buffer for BN processing results */ - int8_t* llrRes; /**< Buffer for LLR results */ - int8_t* llrProcBuf; /**< LLR processing buffer */ -} t_nrLDPC_procBuf; - - - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPCdecoder_defs.h b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPCdecoder_defs.h deleted file mode 100644 index 083fe39bff..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPCdecoder_defs.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPCdecoder_defs.h - * \brief Defines all constants and buffers for the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_DEFS__H__ -#define __NR_LDPC_DEFS__H__ - -// ============================================================================== -// DEFINES - -/** Maximum lifting size */ -#define NR_LDPC_ZMAX 384 - -/** Number of columns in BG1 */ -#define NR_LDPC_NCOL_BG1 68 -/** Number of rows in BG1 */ -#define NR_LDPC_NROW_BG1 46 -/** Number of edges/entries in BG1 */ -#define NR_LDPC_NUM_EDGE_BG1 316 -/** Number of check node (CN) groups in BG1 - A CN group is defined by its number of connected bit nodes. */ -#define NR_LDPC_NUM_CN_GROUPS_BG1 9 -/** First column in BG1 that is connected to only a single CN */ -#define NR_LDPC_START_COL_PARITY_BG1 26 - -/** Number of columns in BG1 for rate 1/3 = 22/(68-2) */ -#define NR_LDPC_NCOL_BG1_R13 NR_LDPC_NCOL_BG1 -/** Number of columns in BG1 for rate 2/3 = 22/(35-2) */ -#define NR_LDPC_NCOL_BG1_R23 35 -/** Number of columns in BG1 for rate 8/9 ~ 22/(27-2) */ -#define NR_LDPC_NCOL_BG1_R89 27 - -/** Number of bit node (BN) groups in BG1 for rate 1/3 - A BN group is defined by its number of connected CNs. */ -#define NR_LDPC_NUM_BN_GROUPS_BG1_R13 30 -/** Number of bit node (BN) groups in BG1 for rate 2/3 */ -#define NR_LDPC_NUM_BN_GROUPS_BG1_R23 8 -/** Number of bit node (BN) groups in BG1 for rate 8/9 */ -#define NR_LDPC_NUM_BN_GROUPS_BG1_R89 5 - -/** Number of columns in BG2 */ -#define NR_LDPC_NCOL_BG2 52 -/** Number of rows in BG2 */ -#define NR_LDPC_NROW_BG2 42 -/** Number of edges/entries in BG2 */ -#define NR_LDPC_NUM_EDGE_BG2 197 -/** Number of check node (CN) groups in BG2 - A CN group is defined by its number of connected bit nodes. */ -#define NR_LDPC_NUM_CN_GROUPS_BG2 6 -/** First column in BG2 that is connected to only a single CN */ -#define NR_LDPC_START_COL_PARITY_BG2 14 - -/** Number of columns in BG2 for rate 1/5 = 10/(52-2) */ -#define NR_LDPC_NCOL_BG2_R15 NR_LDPC_NCOL_BG2 -/** Number of columns in BG2 for rate 1/3 = 10/(32-2) */ -#define NR_LDPC_NCOL_BG2_R13 32 -/** Number of columns in BG2 for rate 2/3 = 10/(17-2) */ -#define NR_LDPC_NCOL_BG2_R23 17 - -/** Number of bit node (BN) groups in BG2 for rate 1/5 - A BN group is defined by its number of connected CNs. */ -#define NR_LDPC_NUM_BN_GROUPS_BG2_R15 23 -/** Number of bit node (BN) groups in BG2 for rate 1/3 */ -#define NR_LDPC_NUM_BN_GROUPS_BG2_R13 10 -/** Number of bit node (BN) groups in BG2 for rate 2/3 */ -#define NR_LDPC_NUM_BN_GROUPS_BG2_R23 6 - -/** Worst case size of the CN processing buffer */ -#define NR_LDPC_SIZE_CN_PROC_BUF NR_LDPC_NUM_EDGE_BG1*NR_LDPC_ZMAX -/** Worst case size of the BN processing buffer */ -#define NR_LDPC_SIZE_BN_PROC_BUF NR_LDPC_NUM_EDGE_BG1*NR_LDPC_ZMAX - -/** Maximum number of possible input LLR = NR_LDPC_NCOL_BG1*NR_LDPC_ZMAX */ -#define NR_LDPC_MAX_NUM_LLR 27000 - -// ============================================================================== -// GLOBAL CONSTANT VARIABLES - -/** Start addresses for the cnProcBuf for each CN group in BG1*/ -static const uint32_t lut_startAddrCnGroups_BG1[NR_LDPC_NUM_CN_GROUPS_BG1] = {0, 1152, 8832, 43392, 61824, 75264, 81408, 88320, 92160}; -/** Start addresses for the cnProcBuf for each CN group in BG2*/ -static const uint32_t lut_startAddrCnGroups_BG2[NR_LDPC_NUM_CN_GROUPS_BG2] = {0, 6912, 37632, 54912, 61824, 67968}; - -/** Number of BNs of CN group for BG1. - E.g. 10 means that there is a CN group where every CN is connected to 10 BNs */ -static const uint8_t lut_numBnInCnGroups_BG1_R13[NR_LDPC_NUM_CN_GROUPS_BG1] = {3, 4, 5, 6, 7, 8, 9, 10, 19}; -/** Number of rows/CNs in every CN group for rate = 1/3 BG1, e.g. 5 rows of CNs connected to 4 BNs */ -static const uint8_t lut_numCnInCnGroups_BG1_R13[NR_LDPC_NUM_CN_GROUPS_BG1] = {1, 5, 18, 8, 5, 2, 2, 1, 4}; -/** Number of rows/CNs in every CN group for rate = 2/3 BG1, e.g. 3 rows of CNs connected to 7 BNs */ -static const uint8_t lut_numCnInCnGroups_BG1_R23[NR_LDPC_NUM_CN_GROUPS_BG1] = {1, 0, 0, 0, 3, 2, 2, 1, 4}; -/** Number of rows/CNs in every CN group for rate = 8/9 BG1, e.g. 4 rows of CNs connected to 19 BNs */ -static const uint8_t lut_numCnInCnGroups_BG1_R89[NR_LDPC_NUM_CN_GROUPS_BG1] = {1, 0, 0, 0, 0, 0, 0, 0, 4}; - -/** Number of connected BNs for every column in BG1 rate = 1/3, e.g. in first column all BNs are connected to 30 CNs */ -static const uint8_t lut_numEdgesPerBn_BG1_R13[NR_LDPC_START_COL_PARITY_BG1] = {30, 28, 7, 11, 9, 4, 8, 12, 8, 7, 12, 10, 12, 11, 10, 7, 10, 10, 13, 7, 8, 11, 12, 5, 6, 6}; -/** Number of connected BNs for every column in BG1 rate = 2/3, e.g. in first column all BNs are connected to 12 CNs */ -static const uint8_t lut_numEdgesPerBn_BG1_R23[NR_LDPC_START_COL_PARITY_BG1] = {12, 11, 4, 5, 5, 3, 4, 5, 5, 3, 6, 6, 6, 6, 5, 3, 6, 5, 6, 4, 5, 6, 6, 3, 3, 2}; -/** Number of connected BNs for every column in BG1 rate = 8/9, e.g. in first column all BNs are connected to 5 CNs */ -static const uint8_t lut_numEdgesPerBn_BG1_R89[NR_LDPC_START_COL_PARITY_BG1] = {5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2}; - -/** Number of BNs of CN group for BG2. - E.g. 3 means that there is a CN group where every CN is connected to 3 BNs */ -static const uint8_t lut_numBnInCnGroups_BG2_R15[NR_LDPC_NUM_CN_GROUPS_BG2] = {3, 4, 5, 6, 8, 10}; -/** Number of rows/CNs in every CN group for rate = 1/5 BG2, e.g. 6 rows of CNs connected to 3 BNs */ -static const uint8_t lut_numCnInCnGroups_BG2_R15[NR_LDPC_NUM_CN_GROUPS_BG2] = {6, 20, 9, 3, 2, 2}; -/** Number of rows/CNs in every CN group for rate = 1/3 BG2, e.g. 8 rows of CNs connected to 4 BNs */ -static const uint8_t lut_numCnInCnGroups_BG2_R13[NR_LDPC_NUM_CN_GROUPS_BG2] = {0, 8, 7, 3, 2, 2}; -/** Number of rows/CNs in every CN group for rate = 2/3 BG2, e.g. 1 row of CNs connected to 4 BNs */ -static const uint8_t lut_numCnInCnGroups_BG2_R23[NR_LDPC_NUM_CN_GROUPS_BG2] = {0, 1, 0, 2, 2, 2}; - -/** Number of connected BNs for every column in BG2 rate = 1/5, e.g. in first column all BNs are connected to 22 CNs */ -static const uint8_t lut_numEdgesPerBn_BG2_R15[NR_LDPC_START_COL_PARITY_BG2] = {22, 23, 10, 5, 5, 14, 7, 13, 6, 8, 9, 16, 9, 12}; -/** Number of connected BNs for every column in BG2 rate = 1/3, e.g. in first column all BNs are connected to 14 CNs */ -static const uint8_t lut_numEdgesPerBn_BG2_R13[NR_LDPC_START_COL_PARITY_BG2] = {14, 16, 2, 4, 4, 6, 6, 8, 6, 6, 6, 13, 5, 7}; -/** Number of connected BNs for every column in BG2 rate = 2/3, e.g. in first column all BNs are connected to 6 CNs */ -static const uint8_t lut_numEdgesPerBn_BG2_R23[NR_LDPC_START_COL_PARITY_BG2] = { 6, 5, 2, 3, 3, 4, 3, 4, 3, 4, 3, 5, 2, 2}; - -// Number of groups for bit node processing -/** Number of connected CNs for every column/BN in BG1 for rate = 1/3, Worst case is BG1 with up to 30 CNs connected to one BN - E.g. 42 parity BNs connected to single CN */ - // BG1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 -static const uint8_t lut_numBnInBnGroups_BG1_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {42, 0, 0, 1, 1, 2, 4, 3, 1, 4, 3, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}; -/** Number of connected CNs for every column/BN in BG1 for rate = 2/3 */ -static const uint8_t lut_numBnInBnGroups_BG1_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = { 9, 1, 5, 3, 7, 8, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -/** Number of connected CNs for every column/BN in BG1 for rate = 8/9 */ -static const uint8_t lut_numBnInBnGroups_BG1_R89[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = { 1, 3,21, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - -/** Number of connected CNs for every column/BN in BG2 for rate = 1/5, Worst case is BG1 with up to 30 CNs connected to one BN - E.g. 38 parity BNs connected to single CN */ - // BG2: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 -static const uint8_t lut_numBnInBnGroups_BG2_R15[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {38, 0, 0, 0, 2, 1, 1, 1, 2, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}; -/** Number of connected CNs for every column/BN in BG2 for rate = 1/3 */ -static const uint8_t lut_numBnInBnGroups_BG2_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {18, 1, 0, 2, 1, 5, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -/** Number of connected CNs for every column/BN in BG2 for rate = 2/3 */ -static const uint8_t lut_numBnInBnGroups_BG2_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = { 3, 3, 5, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - -// Start addresses for the bnProcBuf for each BN group -// BG1 -/** Start address for every BN group within the BN processing buffer for BG1 rate = 1/3 */ -static const uint32_t lut_startAddrBnGroups_BG1_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {0, 16128, 17664, 19584, 24192, 34944, 44160, 47616, 62976, 75648, 94080, 99072, 109824}; -/** Start address for every BN group within the BN processing buffer for BG1 rate = 2/3 */ -static const uint32_t lut_startAddrBnGroups_BG1_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R23] = {0, 3456, 4224, 9984, 14592, 28032, 46464, 50688}; -/** Start address for every BN group within the BN processing buffer for BG1 rate = 8/9 */ -static const uint32_t lut_startAddrBnGroups_BG1_R89[NR_LDPC_NUM_BN_GROUPS_BG1_R89] = {0, 384, 2688, 26880, 28416}; - -/** Start address for every BN group within the LLR processing buffer for BG1 rate = 1/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG1_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {0, 16128, 16512, 16896, 17664, 19200, 20352, 20736, 22272, 23424, 24960, 25344, 25728}; -/** Start address for every BN group within the LLR processing buffer for BG1 rate = 2/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG1_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R23] = {0, 3456, 3840, 5760, 6912, 9600, 12672, 13056}; -/** Start address for every BN group within the LLR processing buffer for BG1 rate = 8/9 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG1_R89[NR_LDPC_NUM_BN_GROUPS_BG1_R89] = {0, 384, 1536, 9600, 9984}; - -// BG2 -/** Start address for every BN group within the BN processing buffer for BG2 rate = 1/5 */ -static const uint32_t lut_startAddrBnGroups_BG2_R15[NR_LDPC_NUM_BN_GROUPS_BG2_R15] = {0, 14592, 18432, 20736, 23424, 26496, 33408, 37248, 41856, 46848, 52224, 58368, 66816}; -/** Start address for every BN group within the BN processing buffer for BG2 rate = 1/3 */ -static const uint32_t lut_startAddrBnGroups_BG2_R13[NR_LDPC_NUM_BN_GROUPS_BG2_R13] = {0, 6912, 7680, 10752, 12672, 24192, 26880, 29952, 34944, 40320}; -/** Start address for every BN group within the BN processing buffer for BG2 rate = 2/3 */ -static const uint32_t lut_startAddrBnGroups_BG2_R23[NR_LDPC_NUM_BN_GROUPS_BG2_R23] = {0, 1152, 3456, 9216, 13824, 17664}; - -/** Start address for every BN group within the LLR processing buffer for BG2 rate = 1/5 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG2_R15[NR_LDPC_NUM_BN_GROUPS_BG2_R15] = {0, 14592, 15360, 15744, 16128, 16512, 17280, 17664, 18048, 18432, 18816, 19200, 19584}; -/** Start address for every BN group within the LLR processing buffer for BG2 rate = 1/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG2_R13[NR_LDPC_NUM_BN_GROUPS_BG2_R13] = {0, 6912, 7296, 8064, 8448, 10368, 10752, 11136, 11520, 11904}; -/** Start address for every BN group within the LLR processing buffer for BG2 rate = 2/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG2_R23[NR_LDPC_NUM_BN_GROUPS_BG2_R23] = {0, 1152, 2304, 4224, 5376, 6144}; - -/** Vector of 32 '1' in int8 for application with AVX2 */ -static const int8_t ones256_epi8[32] __attribute__ ((aligned(32))) = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; -/** Vector of 32 '0' in int8 for application with AVX2 */ -static const int8_t zeros256_epi8[32] __attribute__ ((aligned(32))) = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; -/** Vector of 32 '127' in int8 for application with AVX2 */ -static const int8_t maxLLR256_epi8[32] __attribute__ ((aligned(32))) = {127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127}; - -/** Vector of 64 '1' in int8 for application with AVX512 */ -static const int8_t ones512_epi8[64] __attribute__ ((aligned(64))) = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; -/** Vector of 64 '0' in int8 for application with AVX512 */ -static const int8_t zeros512_epi8[64] __attribute__ ((aligned(64))) = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; -/** Vector of 64 '127' in int8 for application with AVX512 */ -static const int8_t maxLLR512_epi8[64] __attribute__ ((aligned(64))) = {127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127}; - - - - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/complete/nrLDPC_bnProc.h.1 b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/complete/nrLDPC_bnProc.h.1 deleted file mode 100644 index 5cf22728a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/complete/nrLDPC_bnProc.h.1 +++ /dev/null @@ -1,5533 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_bnProc.h - * \brief Defines the functions for bit node processing - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#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. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size -*/ -#ifdef __AVX512BW__ - -static inline void nrLDPC_bnProcPc_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numBnInBnGroups = p_lut->numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m256i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m256i* p_llrProcBuf; - __m512i* p_llrProcBuf256; - __m512i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m512i zmm0, zmm1, zmmRes0, zmmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 63)>>6; - - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m512i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m512i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m512i* p_llrRes; - __m512i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i>5; - uint32_t Mr = numLLR&31; - - const __m256i* p_zeros = (__m256i*) zeros256_epi8; - const __m256i* p_ones = (__m256i*) ones256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - p_out8 = (int8_t*) p_out; - - for (i=0; i>5; - uint32_t Mr = numLLR&31; - const __m256i* p_shuffle = (__m256i*) constShuffle_256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - - for (i=0; i - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif -// nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - // nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - // nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif -// nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_bnProc.h b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_bnProc.h deleted file mode 100644 index 5cf22728a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_bnProc.h +++ /dev/null @@ -1,5533 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_bnProc.h - * \brief Defines the functions for bit node processing - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#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. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size -*/ -#ifdef __AVX512BW__ - -static inline void nrLDPC_bnProcPc_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numBnInBnGroups = p_lut->numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m256i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m256i* p_llrProcBuf; - __m512i* p_llrProcBuf256; - __m512i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m512i zmm0, zmm1, zmmRes0, zmmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 63)>>6; - - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m512i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m512i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m512i* p_llrRes; - __m512i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i>5; - uint32_t Mr = numLLR&31; - - const __m256i* p_zeros = (__m256i*) zeros256_epi8; - const __m256i* p_ones = (__m256i*) ones256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - p_out8 = (int8_t*) p_out; - - for (i=0; i>5; - uint32_t Mr = numLLR&31; - const __m256i* p_shuffle = (__m256i*) constShuffle_256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - - for (i=0; i - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_CNPROC__H__ -#define __NR_LDPC_CNPROC__H__ - -/** - \brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer. - \param p_lut Pointer to decoder LUTs - \param p_procBuf Pointer to processing buffers - \param Z Lifting size -*/ -static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - __m256i *pj0 = &p_cnProcBuf[lut_idxCnProcG3[j][0]]; - __m256i *pj1 = &p_cnProcBuf[lut_idxCnProcG3[j][1]]; - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m512i* p_cnProcBuf; - __m512i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m512i zmm0, min, sgn, zeros,maxLLR; - - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - __m512i* p_cnProcBufResBit; - - - const __m512i* p_ones = (__m512i*) ones512_epi8; - const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8; - - - - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 7 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 9 BNs - - if (lut_numCnInCnGroups[6] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[6]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[7] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[7]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 19 BNs - - if (lut_numCnInCnGroups[8] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[8]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -/** - \brief Performs parity check for BG2 on the CN processing buffer. Stops as soon as error is detected. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size - \return 32-bit parity check indicator -*/ -static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -#endif - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder.c deleted file mode 100644 index 8932b3375c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder.c +++ /dev/null @@ -1,541 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_init.h b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_init.h deleted file mode 100644 index ea031dc2da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_init.h +++ /dev/null @@ -1,1640 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_init.h - * \brief Defines the function to initialize the LDPC decoder and sets correct LUTs. - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_INIT__H__ -#define __NR_LDPC_INIT__H__ - -#include "nrLDPC_lut.h" -#include "nrLDPCdecoder_defs.h" - -/** - \brief Initializes the decoder and sets correct LUTs - \param p_decParams Pointer to decoder parameters - \param p_lut Pointer to decoder LUTs - \return Number of LLR values -*/ -static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lut* p_lut) -{ - uint32_t numLLR = 0; - uint8_t BG = p_decParams->BG; - uint16_t Z = p_decParams->Z; - uint8_t R = p_decParams->R; - - if (BG == 2) - { - // LUT that only depend on BG - p_lut->startAddrCnGroups = lut_startAddrCnGroups_BG2; - - p_lut->posBnInCnProcBuf[0] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG3; - p_lut->posBnInCnProcBuf[1] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG4; - p_lut->posBnInCnProcBuf[2] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG5; - p_lut->posBnInCnProcBuf[3] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG6; - p_lut->posBnInCnProcBuf[4] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG8; - p_lut->posBnInCnProcBuf[5] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG10; - p_lut->posBnInCnProcBuf[6] = NULL; - p_lut->posBnInCnProcBuf[7] = NULL; - p_lut->posBnInCnProcBuf[8] = NULL; - - // LUT that only depend on R - if (R == 15) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG4; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG5; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG8; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG10; - p_lut->startAddrBnProcBuf[6] = NULL; - p_lut->startAddrBnProcBuf[7] = NULL; - p_lut->startAddrBnProcBuf[8] = NULL; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG3; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG4; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG5; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG8; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG10; - p_lut->bnPosBnProcBuf[6] = NULL; - p_lut->bnPosBnProcBuf[7] = NULL; - p_lut->bnPosBnProcBuf[8] = NULL; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R15; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG2_R15; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; - - numLLR = NR_LDPC_NCOL_BG2_R15*Z; - } - else if (R == 13) - { - p_lut->startAddrBnProcBuf[0] = NULL; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG4; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG5; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG8; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG10; - p_lut->startAddrBnProcBuf[6] = NULL; - p_lut->startAddrBnProcBuf[7] = NULL; - p_lut->startAddrBnProcBuf[8] = NULL; - - p_lut->bnPosBnProcBuf[0] = NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG4; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG5; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG8; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG10; - p_lut->bnPosBnProcBuf[6] = NULL; - p_lut->bnPosBnProcBuf[7] = NULL; - p_lut->bnPosBnProcBuf[8] = NULL; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R13; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG2_R13; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; - - numLLR = NR_LDPC_NCOL_BG2_R13*Z; - } - else if (R == 23) - { - p_lut->startAddrBnProcBuf[0] = NULL; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG4; - p_lut->startAddrBnProcBuf[2] = NULL; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG8; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG10; - p_lut->startAddrBnProcBuf[6] = NULL; - p_lut->startAddrBnProcBuf[7] = NULL; - p_lut->startAddrBnProcBuf[8] = NULL; - - p_lut->bnPosBnProcBuf[0] = NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG4; - p_lut->bnPosBnProcBuf[2] = NULL; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG8; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG10; - p_lut->bnPosBnProcBuf[6] = NULL; - p_lut->bnPosBnProcBuf[7] = NULL; - p_lut->bnPosBnProcBuf[8] = NULL; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R23; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG2_R23; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; - - numLLR = NR_LDPC_NCOL_BG2_R23*Z; - } - - // LUT that depend on Z and R - switch (Z) - { - case 2: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z2_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z2_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z2_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z2_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z2_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z2_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 3: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z3_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z3_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z3_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z3_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z3_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z3_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 4: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z4_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z4_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z4_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z4_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z4_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z4_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 5: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z5_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z5_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z5_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z5_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z5_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z5_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 6: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z6_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z6_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z6_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z6_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z6_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z6_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 7: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z7_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z7_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z7_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z7_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z7_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z7_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 8: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z8_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z8_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z8_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z8_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z8_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z8_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 9: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z9_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z9_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z9_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z9_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z9_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z9_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 10: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z10_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z10_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z10_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z10_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z10_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z10_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 11: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z11_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z11_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z11_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z11_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z11_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z11_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 12: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z12_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z12_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z12_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z12_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z12_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z12_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 13: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z13_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z13_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z13_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z13_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z13_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z13_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 14: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z14_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z14_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z14_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z14_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z14_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z14_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 15: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z15_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z15_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z15_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z15_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z15_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z15_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 16: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z16_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z16_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z16_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z16_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z16_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z16_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 18: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z18_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z18_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z18_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z18_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z18_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z18_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 20: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z20_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z20_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z20_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z20_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z20_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z20_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 22: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z22_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z22_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z22_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z22_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z22_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z22_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 24: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z24_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z24_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z24_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z24_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z24_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z24_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 26: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z26_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z26_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z26_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z26_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z26_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z26_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 28: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z28_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z28_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z28_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z28_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z28_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z28_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 30: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z30_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z30_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z30_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z30_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z30_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z30_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 32: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z32_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z32_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z32_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z32_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z32_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z32_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 36: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z36_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z36_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z36_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z36_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z36_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z36_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 40: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z40_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z40_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z40_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z40_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z40_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z40_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 44: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z44_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z44_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z44_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z44_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z44_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z44_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 48: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z48_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z48_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z48_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z48_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z48_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z48_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 52: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z52_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z52_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z52_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z52_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z52_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z52_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 56: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z56_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z56_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z56_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z56_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z56_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z56_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 60: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z60_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z60_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z60_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z60_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z60_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z60_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 64: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z64_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z64_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z64_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z64_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z64_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z64_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 72: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z72_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z72_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z72_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z72_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z72_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z72_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 80: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z80_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z80_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z80_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z80_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z80_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z80_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 88: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z88_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z88_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z88_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z88_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z88_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z88_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 96: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z96_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z96_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z96_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z96_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z96_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z96_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 104: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z104_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z104_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z104_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z104_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z104_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z104_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 112: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z112_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z112_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z112_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z112_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z112_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z112_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 120: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z120_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z120_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z120_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z120_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z120_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z120_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 128: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z128_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z128_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z128_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z128_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z128_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z128_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 144: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z144_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z144_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z144_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z144_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z144_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z144_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 160: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z160_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z160_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z160_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z160_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z160_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z160_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 176: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z176_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z176_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z176_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z176_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z176_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z176_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 192: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z192_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z192_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z192_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z192_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z192_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z192_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 208: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z208_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z208_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z208_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z208_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z208_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z208_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 224: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z224_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z224_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z224_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z224_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z224_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z224_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 240: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z240_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z240_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z240_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z240_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z240_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z240_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 256: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z256_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z256_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z256_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z256_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z256_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z256_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 288: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z288_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z288_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z288_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z288_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z288_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z288_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 320: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z320_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z320_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z320_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z320_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z320_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z320_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 352: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z352_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z352_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z352_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z352_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z352_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z352_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - case 384: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z384_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z384_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z384_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z384_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z384_CNG8; - p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z384_CNG10; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - break; - } - default: - { - p_lut->circShift[0] = NULL; - p_lut->circShift[1] = NULL; - p_lut->circShift[2] = NULL; - p_lut->circShift[3] = NULL; - p_lut->circShift[4] = NULL; - p_lut->circShift[5] = NULL; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - } - } - } - else - { // BG == 1 - // LUT that only depend on BG - p_lut->startAddrCnGroups = lut_startAddrCnGroups_BG1; - - p_lut->posBnInCnProcBuf[0] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG3; - p_lut->posBnInCnProcBuf[1] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG4; - p_lut->posBnInCnProcBuf[2] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG5; - p_lut->posBnInCnProcBuf[3] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG6; - p_lut->posBnInCnProcBuf[4] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG7; - p_lut->posBnInCnProcBuf[5] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG8; - p_lut->posBnInCnProcBuf[6] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG9; - p_lut->posBnInCnProcBuf[7] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG10; - p_lut->posBnInCnProcBuf[8] = (const uint8_t**) posBnInCnProcBuf_BG1_CNG19; - - // LUT that only depend on R - if (R == 13) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG4; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG5; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG6; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG7; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG8; - p_lut->startAddrBnProcBuf[6] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG9; - p_lut->startAddrBnProcBuf[7] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG10; - p_lut->startAddrBnProcBuf[8] = (const uint32_t**) startAddrBnProcBuf_BG1_R13_CNG19; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG4; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG5; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG6; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG7; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG8; - p_lut->bnPosBnProcBuf[6] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG9; - p_lut->bnPosBnProcBuf[7] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG10; - p_lut->bnPosBnProcBuf[8] = (const uint8_t**) bnPosBnProcBuf_BG1_R13_CNG19; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG1_R13; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG1_R13; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - numLLR = NR_LDPC_NCOL_BG1_R13*Z; - } - else if (R == 23) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG7; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG8; - p_lut->startAddrBnProcBuf[6] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG9; - p_lut->startAddrBnProcBuf[7] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG10; - p_lut->startAddrBnProcBuf[8] = (const uint32_t**) startAddrBnProcBuf_BG1_R23_CNG19; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG7; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG8; - p_lut->bnPosBnProcBuf[6] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG9; - p_lut->bnPosBnProcBuf[7] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG10; - p_lut->bnPosBnProcBuf[8] = (const uint8_t**) bnPosBnProcBuf_BG1_R23_CNG19; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG1_R23; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG1_R23; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - - numLLR = NR_LDPC_NCOL_BG1_R23*Z; - } - else if (R == 89) - { - p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG1_R89_CNG3; - p_lut->startAddrBnProcBuf[1] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[2] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[3] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[4] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[5] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[6] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[7] = (const uint32_t**) NULL; - p_lut->startAddrBnProcBuf[8] = (const uint32_t**) startAddrBnProcBuf_BG1_R89_CNG19; - - p_lut->bnPosBnProcBuf[0] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[1] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[2] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[3] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[4] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[5] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[6] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[7] = (const uint8_t**) NULL; - p_lut->bnPosBnProcBuf[8] = (const uint8_t**) bnPosBnProcBuf_BG1_R89_CNG19; - - p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG1_R89; - p_lut->llr2llrProcBufBnPos = llr2llrProcBufBnPos_BG1_R89; - - p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - - numLLR = NR_LDPC_NCOL_BG1_R89*Z; - } - - // LUT that depend on Z and R - switch (Z) - { - case 2: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z2_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z2_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z2_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z2_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z2_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z2_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z2_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z2_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z2_CNG19; - break; - } - case 3: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z3_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z3_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z3_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z3_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z3_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z3_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z3_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z3_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z3_CNG19; - break; - } - case 4: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z4_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z4_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z4_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z4_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z4_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z4_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z4_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z4_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z4_CNG19; - break; - } - case 5: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z5_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z5_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z5_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z5_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z5_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z5_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z5_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z5_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z5_CNG19; - break; - } - case 6: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z6_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z6_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z6_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z6_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z6_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z6_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z6_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z6_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z6_CNG19; - break; - } - case 7: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z7_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z7_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z7_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z7_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z7_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z7_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z7_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z7_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z7_CNG19; - break; - } - case 8: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z8_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z8_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z8_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z8_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z8_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z8_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z8_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z8_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z8_CNG19; - break; - } - case 9: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z9_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z9_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z9_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z9_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z9_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z9_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z9_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z9_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z9_CNG19; - break; - } - case 10: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z10_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z10_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z10_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z10_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z10_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z10_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z10_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z10_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z10_CNG19; - break; - } - case 11: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z11_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z11_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z11_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z11_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z11_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z11_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z11_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z11_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z11_CNG19; - break; - } - case 12: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z12_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z12_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z12_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z12_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z12_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z12_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z12_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z12_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z12_CNG19; - break; - } - case 13: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z13_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z13_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z13_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z13_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z13_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z13_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z13_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z13_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z13_CNG19; - break; - } - case 14: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z14_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z14_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z14_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z14_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z14_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z14_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z14_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z14_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z14_CNG19; - break; - } - case 15: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z15_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z15_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z15_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z15_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z15_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z15_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z15_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z15_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z15_CNG19; - break; - } - case 16: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z16_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z16_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z16_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z16_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z16_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z16_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z16_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z16_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z16_CNG19; - break; - } - case 18: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z18_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z18_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z18_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z18_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z18_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z18_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z18_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z18_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z18_CNG19; - break; - } - case 20: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z20_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z20_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z20_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z20_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z20_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z20_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z20_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z20_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z20_CNG19; - break; - } - case 22: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z22_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z22_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z22_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z22_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z22_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z22_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z22_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z22_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z22_CNG19; - break; - } - case 24: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z24_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z24_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z24_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z24_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z24_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z24_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z24_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z24_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z24_CNG19; - break; - } - case 26: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z26_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z26_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z26_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z26_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z26_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z26_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z26_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z26_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z26_CNG19; - break; - } - case 28: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z28_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z28_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z28_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z28_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z28_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z28_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z28_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z28_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z28_CNG19; - break; - } - case 30: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z30_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z30_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z30_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z30_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z30_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z30_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z30_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z30_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z30_CNG19; - break; - } - case 32: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z32_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z32_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z32_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z32_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z32_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z32_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z32_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z32_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z32_CNG19; - break; - } - case 36: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z36_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z36_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z36_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z36_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z36_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z36_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z36_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z36_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z36_CNG19; - break; - } - case 40: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z40_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z40_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z40_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z40_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z40_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z40_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z40_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z40_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z40_CNG19; - break; - } - case 44: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z44_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z44_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z44_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z44_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z44_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z44_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z44_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z44_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z44_CNG19; - break; - } - case 48: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z48_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z48_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z48_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z48_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z48_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z48_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z48_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z48_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z48_CNG19; - break; - } - case 52: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z52_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z52_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z52_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z52_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z52_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z52_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z52_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z52_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z52_CNG19; - break; - } - case 56: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z56_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z56_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z56_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z56_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z56_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z56_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z56_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z56_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z56_CNG19; - break; - } - case 60: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z60_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z60_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z60_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z60_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z60_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z60_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z60_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z60_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z60_CNG19; - break; - } - case 64: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z64_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z64_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z64_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z64_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z64_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z64_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z64_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z64_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z64_CNG19; - break; - } - case 72: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z72_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z72_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z72_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z72_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z72_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z72_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z72_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z72_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z72_CNG19; - break; - } - case 80: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z80_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z80_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z80_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z80_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z80_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z80_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z80_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z80_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z80_CNG19; - break; - } - case 88: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z88_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z88_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z88_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z88_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z88_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z88_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z88_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z88_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z88_CNG19; - break; - } - case 96: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z96_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z96_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z96_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z96_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z96_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z96_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z96_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z96_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z96_CNG19; - break; - } - case 104: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z104_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z104_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z104_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z104_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z104_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z104_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z104_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z104_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z104_CNG19; - break; - } - case 112: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z112_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z112_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z112_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z112_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z112_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z112_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z112_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z112_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z112_CNG19; - break; - } - case 120: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z120_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z120_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z120_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z120_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z120_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z120_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z120_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z120_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z120_CNG19; - break; - } - case 128: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z128_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z128_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z128_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z128_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z128_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z128_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z128_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z128_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z128_CNG19; - break; - } - case 144: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z144_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z144_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z144_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z144_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z144_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z144_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z144_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z144_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z144_CNG19; - break; - } - case 160: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z160_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z160_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z160_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z160_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z160_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z160_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z160_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z160_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z160_CNG19; - break; - } - case 176: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z176_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z176_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z176_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z176_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z176_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z176_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z176_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z176_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z176_CNG19; - break; - } - case 192: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z192_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z192_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z192_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z192_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z192_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z192_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z192_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z192_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z192_CNG19; - break; - } - case 208: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z208_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z208_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z208_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z208_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z208_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z208_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z208_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z208_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z208_CNG19; - break; - } - case 224: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z224_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z224_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z224_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z224_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z224_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z224_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z224_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z224_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z224_CNG19; - break; - } - case 240: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z240_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z240_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z240_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z240_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z240_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z240_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z240_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z240_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z240_CNG19; - break; - } - case 256: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z256_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z256_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z256_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z256_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z256_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z256_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z256_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z256_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z256_CNG19; - break; - } - case 288: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z288_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z288_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z288_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z288_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z288_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z288_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z288_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z288_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z288_CNG19; - break; - } - case 320: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z320_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z320_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z320_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z320_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z320_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z320_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z320_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z320_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z320_CNG19; - break; - } - case 352: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z352_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z352_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z352_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z352_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z352_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z352_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z352_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z352_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z352_CNG19; - break; - } - case 384: - { - p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z384_CNG3; - p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z384_CNG4; - p_lut->circShift[2] = (const uint16_t**) circShift_BG1_Z384_CNG5; - p_lut->circShift[3] = (const uint16_t**) circShift_BG1_Z384_CNG6; - p_lut->circShift[4] = (const uint16_t**) circShift_BG1_Z384_CNG7; - p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z384_CNG8; - p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z384_CNG9; - p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z384_CNG10; - p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z384_CNG19; - break; - } - default: - { - p_lut->circShift[0] = NULL; - p_lut->circShift[1] = NULL; - p_lut->circShift[2] = NULL; - p_lut->circShift[3] = NULL; - p_lut->circShift[4] = NULL; - p_lut->circShift[5] = NULL; - p_lut->circShift[6] = NULL; - p_lut->circShift[7] = NULL; - p_lut->circShift[8] = NULL; - } - } - } - - return numLLR; -} - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_init_mem.h b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_init_mem.h deleted file mode 100644 index acd40d5d2d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_init_mem.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_init_mem.h - * \brief Defines the function to initialize the LDPC decoder and sets correct LUTs. - * \author Sebastian Wagner (TCL Communications) Email: - * \date 07-12-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_INIT_MEM__H__ -#define __NR_LDPC_INIT_MEM__H__ - -#include -#include "nrLDPC_types.h" - -#ifndef malloc32_clear -/** - \brief Allocates 32 byte aligned memory and initializes to zero - \param size Input size in bytes - \return Pointer to memory -*/ -static inline void* malloc32_clear(size_t size) -{ - void* ptr = (void*) memalign(64, size+64); - memset(ptr, 0, size); - return ptr; -} -#endif - -/** - \brief Allocates and initializes the internal decoder processing buffers - \param p_decParams Pointer to decoder parameters - \param p_lut Pointer to decoder LUTs - \return Number of LLR values -*/ -static inline t_nrLDPC_procBuf* nrLDPC_init_mem(void) -{ - t_nrLDPC_procBuf* p_procBuf = (t_nrLDPC_procBuf*) malloc32_clear(sizeof(t_nrLDPC_procBuf)); - - if (p_procBuf) - { - p_procBuf->cnProcBuf = (int8_t*) malloc32_clear(NR_LDPC_SIZE_CN_PROC_BUF*sizeof(int8_t)); - p_procBuf->cnProcBufRes = (int8_t*) malloc32_clear(NR_LDPC_SIZE_CN_PROC_BUF*sizeof(int8_t)); - p_procBuf->bnProcBuf = (int8_t*) malloc32_clear(NR_LDPC_SIZE_BN_PROC_BUF*sizeof(int8_t)); - p_procBuf->bnProcBufRes = (int8_t*) malloc32_clear(NR_LDPC_SIZE_BN_PROC_BUF*sizeof(int8_t)); - p_procBuf->llrRes = (int8_t*) malloc32_clear(NR_LDPC_MAX_NUM_LLR *sizeof(int8_t)); - p_procBuf->llrProcBuf = (int8_t*) malloc32_clear(NR_LDPC_MAX_NUM_LLR *sizeof(int8_t)); - } - - return(p_procBuf); -} - -static inline void nrLDPC_free_mem(t_nrLDPC_procBuf* p_procBuf) -{ - free(p_procBuf->cnProcBuf); - free(p_procBuf->cnProcBufRes); - free(p_procBuf->bnProcBuf); - free(p_procBuf->bnProcBufRes); - free(p_procBuf->llrRes); - free(p_procBuf->llrProcBuf); - - free(p_procBuf); -} -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_lut.h b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_lut.h deleted file mode 100644 index df80e11d18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_lut.h +++ /dev/null @@ -1,1004 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_lut.h - * \brief Header file defining all look-up tables - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_LUT__H__ -#define __NR_LDPC_LUT__H__ - -// Circular shifts of base graph -// There are 8 sets of circular shifts depending on Z -// However, each shift is modulo Z -// BG1 -// Group of CNs with 3 BNs (CNG3) -// e.g. first and second value correspond to row 4 col 0 and 1 in the BG table (modulo Z) -static const uint16_t circShift_BG1_Z2_CNG3[3][1] = {{1},{0},{0}}; -static const uint16_t circShift_BG1_Z3_CNG3[3][1] = {{2},{1},{0}}; -static const uint16_t circShift_BG1_Z5_CNG3[3][1] = {{3},{0},{0}}; -static const uint16_t circShift_BG1_Z7_CNG3[3][1] = {{2},{3},{0}}; -static const uint16_t circShift_BG1_Z9_CNG3[3][1] = {{3},{1},{0}}; -static const uint16_t circShift_BG1_Z11_CNG3[3][1] = {{9},{3},{0}}; -static const uint16_t circShift_BG1_Z13_CNG3[3][1] = {{11},{9},{0}}; -static const uint16_t circShift_BG1_Z15_CNG3[3][1] = {{4},{1},{0}}; -static const uint16_t circShift_BG1_Z4_CNG3[3][1] = {{1},{2},{0}}; -static const uint16_t circShift_BG1_Z6_CNG3[3][1] = {{2},{1},{0}}; -static const uint16_t circShift_BG1_Z10_CNG3[3][1] = {{3},{5},{0}}; -static const uint16_t circShift_BG1_Z14_CNG3[3][1] = {{2},{10},{0}}; -static const uint16_t circShift_BG1_Z18_CNG3[3][1] = {{12},{1},{0}}; -static const uint16_t circShift_BG1_Z22_CNG3[3][1] = {{20},{14},{0}}; -static const uint16_t circShift_BG1_Z26_CNG3[3][1] = {{24},{22},{0}}; -static const uint16_t circShift_BG1_Z30_CNG3[3][1] = {{4},{1},{0}}; -static const uint16_t circShift_BG1_Z8_CNG3[3][1] = {{5},{6},{0}}; -static const uint16_t circShift_BG1_Z12_CNG3[3][1] = {{8},{1},{0}}; -static const uint16_t circShift_BG1_Z20_CNG3[3][1] = {{13},{5},{0}}; -static const uint16_t circShift_BG1_Z28_CNG3[3][1] = {{2},{10},{0}}; -static const uint16_t circShift_BG1_Z36_CNG3[3][1] = {{30},{19},{0}}; -static const uint16_t circShift_BG1_Z44_CNG3[3][1] = {{42},{36},{0}}; -static const uint16_t circShift_BG1_Z52_CNG3[3][1] = {{24},{48},{0}}; -static const uint16_t circShift_BG1_Z60_CNG3[3][1] = {{4},{31},{0}}; -static const uint16_t circShift_BG1_Z16_CNG3[3][1] = {{13},{6},{0}}; -static const uint16_t circShift_BG1_Z24_CNG3[3][1] = {{20},{13},{0}}; -static const uint16_t circShift_BG1_Z40_CNG3[3][1] = {{33},{5},{0}}; -static const uint16_t circShift_BG1_Z56_CNG3[3][1] = {{2},{10},{0}}; -static const uint16_t circShift_BG1_Z72_CNG3[3][1] = {{30},{19},{0}}; -static const uint16_t circShift_BG1_Z88_CNG3[3][1] = {{42},{80},{0}}; -static const uint16_t circShift_BG1_Z104_CNG3[3][1] = {{24},{100},{0}}; -static const uint16_t circShift_BG1_Z120_CNG3[3][1] = {{64},{91},{0}}; -static const uint16_t circShift_BG1_Z32_CNG3[3][1] = {{29},{6},{0}}; -static const uint16_t circShift_BG1_Z48_CNG3[3][1] = {{44},{37},{0}}; -static const uint16_t circShift_BG1_Z80_CNG3[3][1] = {{73},{45},{0}}; -static const uint16_t circShift_BG1_Z112_CNG3[3][1] = {{58},{10},{0}}; -static const uint16_t circShift_BG1_Z144_CNG3[3][1] = {{102},{91},{0}}; -static const uint16_t circShift_BG1_Z176_CNG3[3][1] = {{42},{80},{0}}; -static const uint16_t circShift_BG1_Z208_CNG3[3][1] = {{24},{204},{0}}; -static const uint16_t circShift_BG1_Z240_CNG3[3][1] = {{64},{211},{0}}; -static const uint16_t circShift_BG1_Z64_CNG3[3][1] = {{29},{38},{0}}; -static const uint16_t circShift_BG1_Z96_CNG3[3][1] = {{44},{85},{0}}; -static const uint16_t circShift_BG1_Z160_CNG3[3][1] = {{73},{45},{0}}; -static const uint16_t circShift_BG1_Z224_CNG3[3][1] = {{170},{10},{0}}; -static const uint16_t circShift_BG1_Z288_CNG3[3][1] = {{246},{235},{0}}; -static const uint16_t circShift_BG1_Z352_CNG3[3][1] = {{42},{256},{0}}; -static const uint16_t circShift_BG1_Z128_CNG3[3][1] = {{29},{102},{0}}; -static const uint16_t circShift_BG1_Z192_CNG3[3][1] = {{140},{181},{0}}; -static const uint16_t circShift_BG1_Z320_CNG3[3][1] = {{233},{205},{0}}; -static const uint16_t circShift_BG1_Z256_CNG3[3][1] = {{157},{102},{0}}; -static const uint16_t circShift_BG1_Z384_CNG3[3][1] = {{332},{181},{0}}; - -// Group of CNs with 4 BNs (CNG4) ->[Num BNs][Num of CN with 4 BNs] -static const uint16_t circShift_BG1_Z2_CNG4[4][5] = {{1, 0, 1, 1, 1},{0, 0, 1, 1, 1},{0, 0, 1, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG4[4][5] = {{2, 2, 1, 2, 0},{2, 1, 1, 2, 2},{2, 1, 0, 2, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG4[4][5] = {{0, 3, 2, 1, 1},{4, 0, 0, 0, 3},{4, 0, 2, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG4[4][5] = {{5, 4, 4, 2, 2},{1, 6, 3, 0, 2},{6, 5, 5, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG4[4][5] = {{0, 0, 0, 0, 6},{0, 0, 0, 0, 0},{0, 0, 2, 8, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG4[4][5] = {{3, 0, 7, 2, 5},{7, 5, 6, 6, 1},{4, 8, 3, 6, 4},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG4[4][5] = {{7, 4, 10, 7, 12},{10, 2, 6, 10, 6},{9, 5, 12, 6, 10},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG4[4][5] = {{0, 14, 4, 12, 12},{7, 9, 13, 5, 9},{9, 11, 0, 11, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG4[4][5] = {{1, 2, 1, 1, 1},{0, 0, 1, 1, 3},{2, 2, 1, 1, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG4[4][5] = {{2, 5, 1, 5, 3},{2, 4, 1, 2, 5},{5, 1, 0, 2, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG4[4][5] = {{0, 8, 2, 6, 1},{9, 5, 0, 5, 8},{4, 5, 7, 6, 6},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG4[4][5] = {{12, 11, 11, 2, 2},{1, 13, 3, 7, 9},{6, 12, 12, 8, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG4[4][5] = {{9, 0, 0, 9, 6},{0, 0, 0, 0, 0},{0, 0, 2, 17, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG4[4][5] = {{3, 11, 18, 2, 16},{18, 16, 17, 17, 1},{4, 19, 3, 17, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG4[4][5] = {{20, 4, 10, 7, 25},{10, 2, 6, 10, 19},{22, 5, 12, 6, 23},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG4[4][5] = {{15, 29, 4, 12, 27},{22, 24, 13, 20, 24},{9, 11, 0, 11, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG4[4][5] = {{1, 6, 5, 5, 5},{0, 4, 1, 5, 7},{2, 2, 5, 1, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG4[4][5] = {{2, 5, 7, 5, 3},{2, 10, 1, 2, 5},{5, 7, 0, 2, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG4[4][5] = {{10, 18, 12, 6, 1},{9, 15, 0, 5, 8},{4, 15, 17, 6, 6},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG4[4][5] = {{12, 25, 11, 2, 16},{1, 27, 17, 7, 9},{6, 26, 12, 22, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG4[4][5] = {{9, 0, 0, 27, 24},{0, 0, 0, 0, 0},{0, 0, 2, 35, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG4[4][5] = {{3, 11, 40, 24, 38},{18, 16, 17, 39, 23},{4, 41, 3, 17, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG4[4][5] = {{46, 30, 10, 7, 25},{36, 2, 32, 10, 45},{22, 31, 12, 6, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG4[4][5] = {{45, 59, 4, 42, 57},{52, 24, 43, 50, 54},{9, 41, 30, 11, 33},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG4[4][5] = {{9, 6, 13, 5, 5},{8, 12, 9, 13, 7},{2, 10, 5, 9, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG4[4][5] = {{2, 5, 7, 17, 15},{2, 10, 13, 14, 5},{5, 19, 0, 2, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG4[4][5] = {{10, 18, 32, 26, 21},{29, 15, 0, 25, 28},{24, 35, 37, 6, 6},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG4[4][5] = {{40, 25, 11, 2, 16},{29, 27, 45, 35, 9},{6, 26, 40, 22, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG4[4][5] = {{45, 0, 0, 27, 24},{36, 0, 0, 0, 0},{0, 0, 2, 35, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG4[4][5] = {{3, 55, 40, 24, 82},{62, 60, 61, 83, 67},{4, 85, 47, 17, 59},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG4[4][5] = {{98, 82, 10, 59, 77},{36, 2, 84, 10, 45},{22, 31, 12, 58, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG4[4][5] = {{45, 59, 4, 102, 57},{112, 84, 103, 50, 114},{9, 41, 30, 71, 93},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG4[4][5] = {{25, 6, 29, 21, 21},{8, 28, 9, 29, 23},{2, 26, 21, 9, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG4[4][5] = {{2, 29, 31, 17, 39},{2, 34, 37, 14, 5},{5, 19, 24, 26, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG4[4][5] = {{50, 58, 32, 66, 21},{29, 15, 0, 65, 68},{64, 35, 37, 46, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG4[4][5] = {{96, 81, 67, 2, 72},{29, 83, 45, 91, 9},{62, 26, 96, 78, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG4[4][5] = {{45, 72, 72, 27, 24},{36, 0, 0, 0, 0},{72, 0, 2, 35, 0},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG4[4][5] = {{91, 143, 128, 112, 82},{150, 60, 61, 83, 67},{92, 85, 135, 17, 59},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG4[4][5] = {{98, 82, 10, 163, 181},{140, 2, 84, 10, 45},{22, 135, 12, 162, 153},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG4[4][5] = {{165, 59, 4, 222, 177},{232, 204, 103, 170, 114},{9, 161, 30, 71, 93},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG4[4][5] = {{25, 6, 29, 21, 21},{40, 28, 9, 29, 23},{2, 58, 21, 9, 39},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG4[4][5] = {{2, 77, 79, 17, 39},{2, 82, 37, 14, 53},{5, 19, 24, 26, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG4[4][5] = {{50, 138, 32, 66, 101},{29, 15, 80, 65, 68},{144, 115, 37, 126, 126},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG4[4][5] = {{208, 81, 67, 114, 184},{141, 195, 45, 91, 121},{174, 138, 96, 78, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG4[4][5] = {{45, 72, 216, 27, 168},{36, 144, 144, 0, 0},{72, 0, 2, 35, 144},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG4[4][5] = {{91, 319, 304, 288, 82},{326, 236, 237, 83, 67},{268, 85, 135, 17, 235},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG4[4][5] = {{25, 70, 29, 21, 21},{104, 92, 9, 29, 23},{66, 122, 21, 9, 39},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG4[4][5] = {{2, 77, 175, 113, 135},{2, 82, 37, 14, 149},{101, 115, 120, 26, 15},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG4[4][5] = {{210, 298, 32, 226, 101},{29, 15, 80, 65, 228},{304, 115, 197, 126, 126},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG4[4][5] = {{25, 198, 157, 149, 149},{104, 220, 137, 157, 151},{194, 122, 149, 137, 167},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG4[4][5] = {{194, 269, 175, 113, 135},{194, 82, 37, 14, 149},{101, 115, 312, 218, 15},{0, 0, 0, 0, 0}}; - -// Group of CNs with 5 BNs (CNG5) ->[Num BNs][Num of CN with 5 BNs] -static const uint16_t circShift_BG1_Z2_CNG5[5][18] = {{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1},{0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1},{0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1},{0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG5[5][18] = {{0, 0, 0, 2, 0, 0, 0, 1, 0, 2, 2, 2, 0, 2, 0, 1, 2, 2},{2, 2, 2, 0, 1, 2, 1, 2, 0, 2, 1, 2, 1, 0, 0, 2, 0, 0},{2, 1, 2, 1, 1, 0, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1},{1, 0, 0, 1, 1, 0, 0, 1, 2, 0, 0, 2, 0, 1, 0, 0, 0, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG5[5][18] = {{2, 4, 2, 0, 1, 2, 1, 2, 0, 0, 2, 2, 4, 1, 2, 4, 3, 4},{0, 0, 0, 0, 3, 3, 3, 3, 2, 0, 1, 3, 4, 4, 2, 2, 4, 2},{0, 3, 1, 3, 0, 2, 0, 1, 1, 0, 0, 0, 3, 4, 2, 4, 1, 4},{1, 0, 1, 2, 4, 4, 0, 2, 2, 3, 4, 0, 0, 1, 3, 2, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG5[5][18] = {{4, 4, 1, 2, 6, 3, 6, 0, 3, 2, 5, 3, 5, 4, 5, 2, 3, 0},{0, 0, 5, 1, 6, 4, 4, 0, 6, 0, 4, 5, 3, 6, 0, 5, 1, 4},{3, 0, 2, 2, 0, 4, 0, 2, 2, 0, 5, 5, 0, 3, 0, 4, 1, 2},{1, 3, 4, 1, 2, 5, 4, 2, 2, 4, 3, 5, 6, 3, 2, 6, 0, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG5[5][18] = {{0, 0, 7, 0, 5, 0, 0, 0, 0, 0, 8, 1, 0, 1, 0, 0, 7, 0},{0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 7, 0, 0, 0, 0, 0},{0, 0, 0, 0, 2, 0, 0, 4, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0},{5, 3, 3, 7, 8, 6, 2, 1, 0, 0, 0, 7, 0, 0, 0, 3, 0, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG5[5][18] = {{5, 7, 4, 6, 3, 9, 6, 2, 10, 1, 5, 1, 3, 10, 5, 2, 1, 2},{3, 6, 2, 7, 1, 5, 5, 0, 1, 7, 1, 1, 4, 9, 0, 0, 3, 2},{5, 5, 1, 6, 7, 1, 7, 4, 8, 9, 2, 8, 2, 0, 4, 3, 9, 7},{3, 7, 10, 0, 2, 8, 3, 2, 6, 2, 10, 4, 1, 4, 8, 8, 2, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG5[5][18] = {{5, 6, 4, 8, 4, 1, 2, 4, 6, 10, 4, 4, 6, 0, 4, 2, 1, 4},{6, 5, 9, 12, 1, 6, 10, 10, 9, 4, 10, 6, 5, 12, 2, 10, 7, 6},{0, 2, 3, 10, 1, 2, 8, 8, 11, 6, 2, 12, 8, 3, 5, 12, 8, 12},{1, 9, 2, 2, 2, 6, 7, 12, 7, 1, 12, 3, 4, 9, 6, 11, 7, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG5[5][18] = {{10, 5, 12, 13, 2, 7, 5, 13, 13, 4, 11, 6, 11, 1, 10, 8, 7, 11},{2, 7, 6, 11, 13, 2, 4, 14, 5, 12, 12, 9, 12, 0, 8, 9, 7, 1},{6, 12, 11, 4, 5, 13, 11, 10, 1, 7, 7, 10, 12, 11, 3, 5, 4, 7},{13, 4, 1, 8, 10, 13, 0, 3, 1, 5, 0, 10, 10, 5, 7, 9, 5, 13},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG5[5][18] = {{0, 0, 3, 3, 0, 2, 0, 3, 1, 2, 3, 1, 1, 3, 1, 3, 3, 3},{2, 3, 0, 3, 1, 0, 1, 1, 0, 3, 3, 1, 1, 3, 3, 1, 3, 1},{0, 2, 0, 3, 1, 0, 0, 0, 3, 1, 0, 3, 3, 1, 1, 3, 1, 3},{2, 0, 2, 1, 3, 2, 1, 1, 1, 3, 3, 3, 0, 3, 0, 3, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG5[5][18] = {{0, 0, 0, 5, 0, 0, 3, 4, 0, 5, 2, 2, 0, 5, 0, 4, 5, 2},{5, 5, 5, 3, 1, 5, 1, 5, 3, 2, 4, 5, 1, 3, 3, 2, 0, 0},{5, 1, 5, 4, 4, 3, 2, 0, 1, 1, 4, 2, 3, 1, 4, 1, 0, 1},{4, 3, 0, 4, 4, 0, 0, 4, 5, 3, 0, 2, 3, 4, 3, 0, 0, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG5[5][18] = {{7, 9, 2, 0, 1, 7, 1, 2, 0, 0, 7, 7, 9, 1, 2, 4, 8, 4},{0, 0, 5, 0, 3, 8, 3, 8, 2, 0, 6, 8, 9, 9, 7, 7, 9, 7},{5, 3, 6, 8, 0, 7, 5, 6, 1, 0, 5, 5, 8, 4, 2, 4, 6, 9},{6, 5, 6, 7, 4, 9, 5, 2, 7, 3, 4, 5, 0, 1, 8, 7, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG5[5][18] = {{11, 4, 1, 9, 6, 10, 6, 7, 10, 2, 12, 10, 12, 11, 12, 9, 10, 0},{0, 7, 12, 8, 13, 11, 4, 7, 13, 7, 4, 5, 3, 6, 7, 5, 8, 4},{3, 0, 9, 2, 7, 11, 0, 9, 2, 7, 12, 12, 0, 3, 7, 4, 8, 9},{8, 10, 11, 1, 2, 12, 11, 2, 2, 11, 10, 5, 6, 10, 2, 13, 7, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG5[5][18] = {{0, 0, 7, 0, 5, 0, 0, 0, 0, 0, 17, 1, 0, 10, 9, 0, 16, 0},{9, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 16, 0, 0, 0, 9, 0},{0, 0, 0, 0, 11, 0, 0, 4, 0, 4, 0, 0, 0, 0, 3, 0, 0, 0},{5, 3, 3, 7, 8, 6, 11, 1, 0, 0, 0, 7, 0, 0, 9, 3, 0, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG5[5][18] = {{16, 18, 15, 17, 14, 9, 17, 13, 21, 12, 16, 12, 3, 10, 16, 13, 12, 13},{3, 6, 13, 18, 1, 16, 16, 11, 1, 18, 12, 12, 15, 20, 0, 11, 3, 2},{16, 5, 1, 6, 18, 1, 7, 15, 8, 9, 2, 19, 13, 11, 15, 3, 9, 7},{3, 18, 10, 11, 13, 19, 14, 2, 17, 13, 10, 4, 12, 4, 8, 8, 13, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG5[5][18] = {{18, 19, 4, 21, 4, 14, 2, 4, 6, 10, 4, 4, 6, 13, 4, 2, 1, 4},{6, 18, 22, 12, 1, 6, 10, 23, 22, 4, 23, 19, 18, 12, 2, 23, 7, 6},{0, 2, 16, 10, 14, 2, 8, 21, 11, 6, 15, 12, 21, 16, 5, 12, 21, 12},{1, 22, 2, 15, 15, 6, 20, 12, 20, 14, 25, 3, 17, 22, 6, 24, 20, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG5[5][18] = {{25, 5, 27, 13, 2, 22, 20, 13, 13, 19, 11, 21, 11, 1, 25, 23, 22, 11},{17, 7, 21, 11, 13, 2, 19, 29, 20, 12, 27, 24, 27, 0, 8, 9, 7, 1},{6, 27, 11, 19, 20, 28, 26, 25, 1, 22, 22, 25, 12, 26, 18, 5, 19, 7},{28, 19, 1, 8, 25, 13, 15, 18, 1, 5, 0, 10, 10, 20, 22, 24, 5, 28},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG5[5][18] = {{0, 4, 7, 3, 0, 6, 0, 7, 5, 2, 7, 1, 5, 7, 5, 7, 7, 3},{6, 3, 0, 3, 5, 4, 1, 1, 0, 3, 7, 5, 1, 7, 3, 5, 3, 5},{4, 2, 4, 7, 5, 4, 0, 4, 7, 1, 4, 7, 3, 5, 5, 3, 5, 3},{6, 0, 6, 5, 7, 6, 1, 5, 1, 3, 7, 7, 0, 3, 0, 7, 3, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG5[5][18] = {{6, 0, 0, 11, 6, 0, 3, 4, 6, 11, 2, 8, 6, 5, 6, 4, 5, 8},{11, 5, 5, 9, 7, 5, 1, 11, 9, 8, 4, 11, 1, 9, 9, 2, 0, 6},{5, 1, 11, 4, 4, 3, 8, 6, 7, 1, 10, 2, 9, 1, 10, 7, 6, 7},{10, 3, 0, 4, 10, 6, 6, 4, 11, 9, 0, 2, 9, 10, 9, 0, 0, 10},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG5[5][18] = {{17, 9, 12, 10, 11, 7, 11, 2, 10, 10, 7, 7, 19, 11, 2, 14, 8, 14},{0, 10, 15, 10, 13, 8, 3, 8, 2, 0, 16, 18, 19, 19, 17, 7, 9, 7},{15, 13, 16, 18, 10, 17, 5, 6, 11, 0, 5, 15, 18, 4, 12, 4, 16, 19},{16, 5, 6, 7, 14, 9, 15, 2, 17, 13, 4, 5, 0, 1, 8, 7, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG5[5][18] = {{25, 4, 1, 23, 6, 10, 6, 7, 24, 2, 26, 24, 26, 11, 12, 23, 10, 0},{0, 7, 26, 8, 13, 11, 18, 21, 13, 21, 18, 5, 17, 6, 21, 19, 22, 4},{3, 0, 9, 16, 21, 25, 14, 9, 2, 21, 12, 26, 0, 17, 21, 4, 22, 9},{8, 10, 25, 15, 2, 12, 11, 16, 2, 25, 10, 19, 6, 10, 2, 27, 21, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG5[5][18] = {{0, 0, 25, 0, 23, 0, 0, 0, 0, 0, 17, 19, 0, 10, 9, 0, 16, 18},{9, 0, 0, 0, 0, 0, 18, 0, 31, 0, 0, 26, 16, 0, 0, 0, 27, 0},{0, 0, 0, 0, 11, 0, 0, 22, 0, 4, 0, 0, 0, 0, 21, 0, 0, 0},{5, 21, 3, 25, 26, 6, 29, 19, 18, 18, 0, 25, 0, 0, 9, 3, 18, 21},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG5[5][18] = {{16, 18, 15, 17, 14, 9, 39, 13, 43, 12, 16, 12, 3, 32, 16, 35, 34, 35},{25, 6, 35, 18, 1, 16, 16, 33, 1, 40, 12, 34, 15, 20, 0, 33, 3, 24},{16, 5, 23, 6, 40, 23, 7, 15, 30, 9, 24, 19, 35, 33, 37, 25, 9, 29},{25, 40, 10, 11, 35, 19, 36, 2, 39, 13, 10, 4, 12, 26, 8, 8, 35, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG5[5][18] = {{44, 45, 4, 21, 4, 40, 2, 4, 6, 10, 4, 4, 6, 39, 4, 2, 1, 4},{6, 18, 22, 38, 1, 32, 36, 49, 22, 30, 49, 45, 44, 12, 28, 23, 7, 6},{26, 28, 16, 36, 40, 2, 8, 21, 11, 6, 41, 12, 21, 42, 5, 38, 47, 38},{27, 48, 28, 41, 41, 6, 20, 38, 20, 40, 51, 29, 43, 48, 32, 24, 46, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG5[5][18] = {{25, 5, 27, 43, 32, 52, 50, 13, 43, 19, 41, 51, 11, 1, 55, 53, 22, 11},{47, 7, 21, 11, 43, 32, 19, 29, 50, 12, 57, 54, 27, 30, 8, 9, 7, 31},{6, 57, 11, 49, 20, 58, 26, 55, 31, 52, 22, 25, 42, 26, 48, 35, 49, 7},{58, 19, 1, 38, 25, 43, 45, 48, 31, 5, 0, 40, 40, 20, 52, 24, 5, 28},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG5[5][18] = {{0, 12, 7, 3, 0, 6, 8, 15, 13, 2, 15, 1, 5, 7, 13, 7, 7, 11},{14, 3, 8, 3, 5, 12, 9, 1, 0, 11, 7, 5, 9, 7, 11, 13, 3, 13},{12, 10, 4, 7, 5, 4, 8, 12, 7, 9, 4, 15, 3, 13, 5, 11, 13, 3},{14, 8, 6, 13, 15, 6, 9, 13, 9, 3, 15, 7, 8, 3, 0, 7, 11, 13},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG5[5][18] = {{6, 0, 0, 23, 6, 12, 15, 4, 6, 11, 14, 8, 18, 17, 18, 4, 17, 8},{11, 17, 17, 9, 19, 5, 13, 23, 9, 8, 4, 23, 1, 9, 21, 2, 12, 6},{17, 13, 23, 4, 4, 3, 20, 18, 7, 1, 10, 2, 9, 1, 10, 19, 18, 19},{22, 3, 0, 16, 10, 6, 18, 16, 23, 9, 0, 2, 21, 22, 9, 0, 0, 10},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG5[5][18] = {{17, 9, 12, 30, 11, 27, 11, 22, 10, 10, 27, 7, 19, 31, 22, 34, 28, 34},{20, 10, 15, 30, 13, 28, 23, 28, 22, 20, 16, 38, 19, 19, 37, 7, 29, 27},{15, 13, 16, 38, 10, 37, 25, 26, 31, 20, 5, 15, 18, 24, 32, 4, 16, 19},{36, 25, 6, 27, 34, 29, 15, 2, 17, 33, 4, 5, 0, 21, 8, 7, 22, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG5[5][18] = {{53, 32, 1, 51, 34, 38, 34, 7, 24, 2, 26, 24, 54, 11, 12, 23, 38, 28},{0, 35, 54, 8, 41, 11, 18, 49, 41, 49, 18, 5, 45, 34, 21, 47, 22, 4},{3, 0, 9, 44, 49, 53, 42, 9, 2, 49, 12, 26, 0, 17, 49, 4, 22, 9},{36, 10, 25, 15, 2, 12, 11, 16, 30, 25, 38, 19, 6, 10, 2, 55, 49, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG5[5][18] = {{0, 36, 61, 0, 59, 0, 0, 0, 0, 0, 53, 55, 0, 46, 9, 0, 52, 18},{45, 0, 0, 0, 0, 36, 18, 0, 67, 0, 0, 62, 16, 0, 0, 0, 27, 0},{0, 0, 0, 0, 11, 0, 36, 22, 36, 4, 36, 0, 0, 0, 21, 0, 0, 0},{41, 21, 39, 61, 62, 42, 29, 19, 18, 18, 0, 61, 0, 0, 45, 39, 54, 57},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG5[5][18] = {{16, 18, 15, 61, 14, 9, 83, 13, 87, 56, 60, 12, 47, 76, 60, 35, 34, 79},{69, 6, 79, 62, 1, 16, 16, 33, 1, 40, 56, 34, 15, 20, 0, 77, 3, 68},{60, 5, 23, 50, 40, 67, 7, 15, 74, 53, 24, 19, 35, 33, 37, 25, 53, 29},{25, 40, 54, 11, 79, 19, 36, 46, 83, 13, 54, 4, 12, 70, 8, 8, 79, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG5[5][18] = {{44, 45, 4, 21, 4, 92, 2, 4, 6, 10, 4, 4, 6, 91, 4, 2, 1, 4},{58, 18, 74, 38, 1, 32, 88, 49, 22, 30, 49, 45, 96, 64, 28, 75, 59, 6},{26, 28, 16, 88, 40, 2, 8, 21, 63, 6, 93, 64, 73, 94, 5, 38, 99, 38},{27, 100, 28, 93, 93, 6, 20, 90, 20, 92, 51, 81, 43, 100, 84, 24, 98, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG5[5][18] = {{25, 65, 27, 43, 32, 112, 50, 73, 103, 79, 41, 111, 11, 1, 115, 53, 22, 71},{47, 7, 21, 11, 43, 32, 79, 29, 110, 12, 117, 54, 87, 90, 68, 69, 7, 91},{6, 117, 11, 49, 80, 118, 26, 55, 31, 52, 22, 25, 42, 26, 48, 95, 49, 67},{58, 79, 61, 98, 85, 103, 105, 108, 91, 65, 60, 100, 100, 20, 52, 24, 5, 28},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG5[5][18] = {{0, 28, 23, 3, 0, 22, 24, 31, 29, 2, 31, 1, 5, 7, 13, 7, 23, 11},{14, 19, 8, 19, 5, 12, 9, 17, 16, 27, 7, 5, 9, 23, 11, 13, 3, 29},{28, 10, 20, 23, 21, 20, 24, 12, 7, 9, 4, 15, 19, 29, 21, 11, 13, 3},{30, 24, 22, 29, 31, 6, 9, 29, 25, 19, 31, 7, 24, 3, 0, 23, 11, 13},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG5[5][18] = {{30, 24, 24, 23, 30, 12, 15, 4, 6, 35, 38, 32, 18, 41, 18, 4, 17, 32},{11, 41, 17, 33, 19, 5, 37, 23, 9, 8, 4, 47, 25, 33, 45, 26, 36, 30},{41, 13, 47, 28, 4, 3, 20, 18, 31, 25, 10, 2, 9, 1, 10, 43, 18, 19},{22, 27, 24, 40, 34, 30, 42, 16, 47, 9, 24, 26, 21, 22, 9, 0, 24, 34},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG5[5][18] = {{17, 9, 12, 30, 11, 27, 11, 62, 50, 10, 27, 47, 19, 71, 22, 74, 68, 74},{20, 50, 55, 30, 53, 68, 23, 68, 22, 20, 56, 78, 19, 19, 77, 47, 69, 67},{55, 53, 16, 78, 50, 37, 25, 66, 31, 60, 5, 55, 18, 64, 32, 44, 16, 19},{76, 25, 46, 67, 74, 29, 55, 2, 57, 33, 44, 45, 0, 21, 48, 47, 22, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG5[5][18] = {{53, 88, 1, 107, 34, 38, 34, 63, 80, 2, 82, 80, 110, 11, 12, 23, 94, 84},{0, 91, 54, 64, 41, 11, 18, 49, 97, 49, 74, 61, 45, 90, 77, 103, 22, 4},{3, 56, 65, 100, 105, 53, 98, 65, 58, 49, 68, 26, 0, 73, 49, 60, 22, 9},{36, 10, 81, 15, 2, 68, 11, 16, 30, 25, 38, 75, 6, 10, 2, 55, 49, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG5[5][18] = {{72, 36, 61, 0, 131, 0, 0, 0, 0, 0, 53, 55, 72, 46, 9, 0, 52, 18},{45, 0, 0, 0, 0, 36, 90, 0, 67, 0, 0, 134, 16, 0, 0, 0, 99, 0},{72, 0, 0, 0, 11, 0, 108, 22, 36, 76, 108, 0, 0, 0, 21, 0, 0, 0},{113, 21, 39, 133, 62, 42, 29, 19, 18, 18, 0, 61, 0, 0, 117, 39, 126, 57},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG5[5][18] = {{104, 18, 103, 149, 102, 97, 171, 101, 175, 56, 60, 100, 135, 164, 60, 123, 34, 79},{157, 6, 79, 150, 1, 104, 16, 121, 89, 128, 144, 34, 15, 20, 88, 77, 3, 68},{60, 5, 111, 50, 40, 67, 95, 103, 162, 141, 112, 19, 35, 33, 37, 25, 53, 117},{113, 128, 54, 99, 167, 107, 36, 46, 83, 101, 54, 92, 12, 70, 96, 96, 167, 96},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG5[5][18] = {{44, 45, 4, 21, 4, 92, 2, 4, 6, 10, 4, 4, 6, 91, 4, 2, 1, 4},{58, 18, 74, 142, 1, 136, 88, 49, 126, 30, 153, 45, 200, 64, 28, 75, 163, 6},{130, 132, 16, 192, 40, 106, 112, 125, 63, 6, 197, 168, 177, 198, 109, 142, 99, 142},{131, 100, 28, 197, 93, 6, 20, 194, 20, 92, 155, 185, 43, 100, 188, 128, 98, 3},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG5[5][18] = {{25, 185, 27, 163, 32, 232, 170, 73, 103, 199, 161, 231, 11, 121, 115, 53, 22, 191},{47, 127, 141, 131, 43, 32, 199, 149, 110, 132, 237, 174, 207, 90, 188, 189, 127, 211},{126, 117, 11, 169, 200, 118, 26, 175, 151, 172, 142, 145, 42, 26, 168, 215, 49, 187},{178, 199, 181, 98, 205, 103, 105, 108, 211, 65, 180, 100, 100, 140, 52, 24, 125, 148},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG5[5][18] = {{0, 28, 23, 3, 0, 22, 24, 31, 29, 2, 63, 33, 37, 39, 45, 39, 23, 11},{14, 19, 8, 51, 37, 44, 9, 49, 48, 59, 39, 5, 41, 23, 11, 45, 35, 29},{60, 42, 52, 23, 53, 20, 56, 44, 7, 41, 36, 15, 51, 29, 21, 11, 45, 35},{30, 24, 54, 61, 63, 6, 9, 61, 57, 19, 31, 39, 56, 35, 0, 23, 11, 45},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG5[5][18] = {{30, 24, 72, 71, 30, 60, 63, 4, 6, 35, 38, 32, 18, 89, 66, 52, 17, 80},{11, 89, 17, 81, 19, 5, 37, 23, 9, 8, 52, 47, 25, 81, 93, 26, 36, 78},{41, 61, 95, 76, 52, 51, 68, 66, 79, 73, 10, 2, 9, 1, 58, 43, 18, 67},{22, 27, 24, 40, 82, 78, 90, 64, 95, 9, 24, 74, 21, 22, 9, 0, 72, 82},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG5[5][18] = {{17, 89, 12, 110, 11, 27, 91, 62, 50, 10, 27, 47, 99, 151, 102, 154, 68, 74},{20, 50, 135, 110, 133, 148, 23, 148, 22, 20, 136, 158, 19, 19, 77, 47, 69, 67},{55, 133, 96, 158, 50, 117, 105, 66, 111, 140, 5, 55, 18, 64, 32, 124, 16, 99},{156, 105, 46, 67, 74, 29, 135, 2, 57, 33, 44, 125, 0, 21, 48, 47, 102, 100},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG5[5][18] = {{53, 88, 1, 107, 146, 150, 34, 175, 192, 114, 82, 192, 222, 123, 12, 23, 206, 84},{0, 203, 166, 176, 153, 11, 130, 49, 209, 49, 186, 173, 157, 90, 77, 215, 22, 4},{3, 168, 65, 212, 217, 53, 210, 177, 58, 161, 68, 26, 0, 73, 49, 60, 134, 9},{148, 122, 81, 127, 114, 68, 123, 128, 30, 137, 150, 187, 6, 10, 114, 167, 161, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG5[5][18] = {{72, 180, 205, 0, 275, 0, 0, 144, 0, 0, 197, 199, 216, 190, 153, 0, 52, 18},{189, 0, 0, 0, 0, 180, 90, 144, 211, 0, 0, 278, 16, 0, 0, 0, 243, 0},{72, 0, 0, 0, 155, 0, 252, 166, 36, 76, 108, 0, 0, 0, 165, 0, 0, 0},{257, 165, 183, 277, 62, 42, 173, 19, 162, 18, 0, 205, 0, 0, 117, 183, 270, 57},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG5[5][18] = {{280, 18, 279, 325, 102, 273, 171, 101, 351, 56, 60, 100, 135, 164, 236, 123, 210, 79},{157, 6, 255, 326, 1, 104, 16, 297, 265, 304, 320, 210, 15, 196, 264, 77, 3, 244},{236, 181, 111, 226, 40, 243, 95, 279, 338, 141, 112, 195, 35, 209, 37, 25, 53, 293},{113, 304, 54, 99, 167, 107, 212, 222, 83, 101, 54, 268, 188, 246, 272, 272, 167, 272},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG5[5][18] = {{64, 28, 23, 67, 0, 86, 88, 95, 93, 2, 127, 33, 37, 39, 45, 39, 23, 11},{14, 19, 8, 115, 37, 108, 73, 49, 112, 59, 39, 69, 105, 23, 11, 45, 35, 29},{60, 42, 116, 87, 53, 84, 120, 44, 71, 41, 36, 79, 51, 29, 21, 11, 45, 35},{30, 24, 54, 61, 63, 6, 9, 61, 121, 83, 31, 103, 120, 35, 0, 23, 11, 45},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG5[5][18] = {{30, 24, 72, 71, 30, 60, 159, 100, 102, 131, 38, 128, 18, 185, 66, 52, 113, 80},{11, 89, 17, 81, 19, 5, 37, 23, 9, 8, 148, 143, 121, 177, 93, 122, 132, 78},{41, 61, 191, 76, 52, 147, 68, 66, 175, 169, 10, 2, 105, 97, 154, 139, 114, 163},{22, 27, 120, 136, 82, 78, 90, 64, 95, 105, 120, 74, 21, 22, 105, 96, 168, 82},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG5[5][18] = {{177, 249, 172, 270, 11, 27, 91, 222, 210, 170, 187, 207, 259, 151, 102, 154, 228, 234},{20, 50, 295, 110, 293, 308, 23, 308, 22, 20, 296, 158, 179, 179, 77, 47, 69, 227},{55, 133, 96, 318, 50, 117, 105, 66, 271, 140, 5, 55, 178, 64, 192, 124, 176, 259},{316, 105, 46, 67, 234, 29, 135, 162, 217, 33, 44, 285, 160, 181, 208, 207, 102, 260},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG5[5][18] = {{64, 156, 23, 195, 128, 86, 216, 95, 221, 2, 127, 161, 37, 167, 173, 167, 151, 139},{142, 147, 136, 243, 165, 236, 73, 177, 112, 187, 167, 197, 105, 151, 139, 173, 163, 157},{188, 170, 116, 215, 181, 84, 120, 172, 199, 41, 164, 207, 51, 157, 149, 139, 173, 163},{158, 152, 182, 61, 63, 6, 9, 61, 121, 211, 159, 103, 120, 163, 0, 151, 139, 173},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG5[5][18] = {{30, 24, 72, 71, 222, 252, 159, 100, 102, 323, 230, 320, 210, 185, 258, 52, 113, 80},{11, 89, 17, 81, 19, 5, 229, 215, 201, 8, 148, 335, 313, 177, 93, 314, 132, 78},{233, 61, 383, 76, 244, 147, 260, 258, 175, 361, 202, 2, 297, 289, 346, 139, 114, 163},{22, 27, 312, 136, 274, 78, 90, 256, 287, 105, 312, 266, 21, 214, 297, 288, 168, 274},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - -// Group of CNs with 6 BNs (CNG6) ->[Num BNs][Num of CN with 6 BNs] -static const uint16_t circShift_BG1_Z2_CNG6[6][8] = {{1, 0, 1, 0, 0, 1, 1, 0},{0, 1, 0, 1, 1, 0, 1, 0},{1, 1, 1, 0, 0, 1, 1, 0},{1, 1, 1, 1, 1, 1, 1, 0},{0, 0, 0, 1, 0, 0, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG6[6][8] = {{1, 1, 2, 1, 1, 1, 1, 1},{0, 2, 0, 1, 0, 2, 0, 2},{2, 0, 0, 1, 2, 0, 1, 1},{1, 1, 1, 0, 2, 2, 0, 0},{1, 0, 0, 1, 2, 2, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG6[6][8] = {{4, 4, 2, 0, 4, 1, 4, 4},{2, 0, 2, 4, 1, 2, 0, 0},{3, 0, 3, 1, 1, 0, 2, 0},{0, 0, 1, 1, 0, 0, 3, 2},{2, 0, 3, 0, 1, 0, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG6[6][8] = {{4, 0, 0, 3, 1, 0, 3, 0},{0, 3, 5, 5, 6, 0, 5, 3},{2, 1, 4, 4, 5, 2, 3, 1},{0, 0, 0, 3, 2, 4, 1, 4},{1, 3, 4, 4, 1, 1, 1, 5},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG6[6][8] = {{6, 0, 0, 8, 0, 4, 1, 2},{0, 4, 2, 7, 0, 0, 1, 1},{0, 0, 0, 0, 1, 0, 5, 0},{2, 0, 0, 7, 0, 0, 0, 5},{0, 0, 0, 0, 0, 3, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG6[6][8] = {{3, 3, 0, 3, 10, 1, 8, 5},{9, 7, 8, 0, 0, 10, 0, 5},{1, 2, 5, 4, 4, 1, 5, 7},{6, 1, 6, 5, 5, 2, 0, 2},{4, 4, 3, 7, 6, 8, 10, 7},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG6[6][8] = {{0, 10, 0, 1, 12, 6, 6, 9},{4, 3, 2, 2, 6, 12, 8, 8},{1, 4, 4, 11, 10, 2, 5, 9},{3, 5, 3, 3, 2, 5, 3, 2},{7, 0, 12, 5, 9, 4, 4, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG6[6][8] = {{10, 3, 3, 3, 14, 2, 2, 2},{5, 2, 7, 5, 3, 7, 2, 13},{4, 9, 1, 0, 9, 8, 5, 2},{13, 5, 9, 8, 3, 2, 5, 6},{0, 10, 9, 14, 1, 10, 6, 13},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG6[6][8] = {{1, 0, 3, 2, 0, 3, 1, 0},{0, 1, 0, 1, 1, 2, 1, 2},{3, 1, 3, 0, 0, 1, 1, 0},{1, 3, 1, 3, 3, 3, 3, 0},{2, 2, 0, 3, 0, 0, 3, 2},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG6[6][8] = {{1, 1, 2, 4, 1, 1, 1, 4},{3, 2, 3, 1, 3, 2, 0, 2},{2, 3, 3, 4, 2, 0, 4, 1},{1, 1, 4, 0, 2, 5, 3, 3},{4, 3, 3, 4, 5, 5, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG6[6][8] = {{9, 9, 7, 0, 4, 1, 9, 9},{2, 0, 7, 4, 1, 2, 5, 0},{3, 5, 8, 1, 1, 0, 2, 0},{0, 5, 1, 1, 0, 0, 3, 7},{7, 0, 8, 5, 1, 0, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG6[6][8] = {{11, 0, 0, 3, 8, 7, 10, 7},{0, 10, 12, 12, 6, 0, 5, 3},{2, 1, 4, 4, 5, 9, 10, 8},{7, 7, 7, 3, 2, 4, 8, 11},{8, 3, 4, 4, 8, 1, 8, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG6[6][8] = {{15, 0, 9, 17, 0, 13, 10, 2},{0, 13, 11, 7, 0, 9, 10, 1},{0, 9, 0, 0, 10, 0, 14, 0},{11, 0, 0, 7, 0, 0, 9, 14},{0, 0, 0, 0, 0, 12, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG6[6][8] = {{3, 14, 0, 3, 21, 1, 8, 16},{9, 7, 8, 0, 0, 21, 0, 16},{1, 2, 5, 4, 15, 1, 16, 7},{6, 1, 6, 5, 16, 2, 11, 2},{15, 4, 14, 7, 6, 8, 21, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG6[6][8] = {{0, 10, 13, 1, 12, 6, 6, 9},{17, 16, 2, 15, 6, 12, 8, 21},{1, 4, 4, 11, 10, 15, 18, 9},{16, 18, 3, 16, 2, 5, 16, 2},{20, 0, 25, 18, 9, 4, 17, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG6[6][8] = {{10, 18, 3, 3, 29, 17, 17, 2},{5, 2, 22, 5, 18, 7, 2, 28},{4, 24, 16, 0, 9, 23, 5, 2},{28, 5, 9, 23, 18, 17, 5, 6},{0, 25, 9, 14, 16, 10, 6, 28},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG6[6][8] = {{1, 0, 7, 2, 4, 7, 1, 0},{0, 1, 4, 1, 1, 2, 1, 6},{7, 1, 3, 0, 0, 1, 5, 4},{1, 3, 1, 3, 7, 7, 3, 4},{6, 2, 0, 3, 0, 0, 3, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG6[6][8] = {{1, 1, 8, 10, 1, 7, 1, 10},{9, 2, 3, 7, 9, 2, 6, 2},{2, 9, 9, 4, 8, 0, 4, 7},{7, 1, 10, 0, 2, 5, 9, 3},{10, 9, 3, 4, 5, 11, 1, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG6[6][8] = {{19, 9, 17, 0, 4, 1, 19, 9},{2, 0, 7, 14, 1, 2, 15, 0},{3, 5, 8, 11, 1, 0, 12, 10},{0, 15, 11, 1, 10, 10, 3, 7},{17, 0, 8, 15, 1, 10, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG6[6][8] = {{25, 14, 0, 3, 8, 21, 24, 21},{0, 24, 26, 26, 6, 14, 19, 17},{16, 15, 4, 4, 19, 9, 24, 8},{21, 21, 7, 3, 2, 18, 22, 25},{22, 17, 4, 18, 8, 15, 22, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG6[6][8] = {{15, 18, 9, 17, 0, 13, 28, 20},{0, 13, 29, 7, 0, 9, 10, 19},{0, 27, 0, 0, 10, 18, 14, 0},{11, 18, 0, 25, 0, 0, 9, 14},{0, 0, 18, 0, 0, 12, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG6[6][8] = {{3, 14, 22, 3, 43, 1, 30, 38},{31, 29, 8, 22, 22, 21, 0, 38},{1, 24, 27, 26, 15, 23, 38, 29},{6, 23, 28, 5, 38, 24, 11, 24},{37, 26, 14, 29, 28, 30, 21, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG6[6][8] = {{0, 36, 39, 1, 12, 6, 6, 9},{43, 42, 28, 41, 6, 12, 34, 21},{1, 4, 30, 11, 10, 15, 44, 35},{16, 18, 3, 16, 28, 5, 42, 28},{46, 26, 51, 44, 35, 30, 43, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG6[6][8] = {{40, 18, 3, 3, 59, 17, 17, 32},{5, 32, 52, 35, 48, 7, 2, 58},{34, 24, 46, 0, 39, 23, 35, 2},{58, 5, 39, 23, 18, 47, 5, 36},{30, 25, 9, 14, 16, 10, 36, 58},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG6[6][8] = {{1, 0, 7, 10, 12, 7, 9, 0},{8, 1, 4, 9, 9, 10, 9, 6},{7, 1, 11, 8, 8, 9, 13, 12},{9, 3, 1, 11, 15, 15, 3, 4},{14, 10, 0, 3, 0, 0, 11, 14},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG6[6][8] = {{1, 13, 20, 10, 1, 19, 13, 10},{9, 2, 15, 19, 21, 14, 6, 14},{2, 9, 9, 16, 8, 0, 16, 19},{19, 1, 22, 12, 2, 5, 21, 3},{10, 9, 15, 4, 5, 11, 1, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG6[6][8] = {{39, 29, 17, 20, 24, 21, 39, 9},{22, 20, 27, 14, 21, 2, 15, 0},{23, 5, 8, 11, 21, 0, 12, 30},{0, 35, 11, 21, 30, 10, 3, 27},{37, 20, 28, 15, 1, 10, 23, 1},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG6[6][8] = {{25, 42, 0, 31, 8, 49, 24, 49},{0, 52, 54, 54, 6, 42, 19, 45},{16, 43, 32, 32, 47, 9, 52, 8},{49, 21, 7, 31, 30, 46, 50, 25},{22, 45, 4, 18, 8, 15, 50, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG6[6][8] = {{15, 54, 9, 17, 0, 49, 64, 20},{0, 13, 65, 7, 0, 9, 46, 55},{0, 27, 0, 0, 46, 18, 50, 0},{47, 54, 0, 25, 0, 0, 9, 50},{36, 0, 18, 0, 0, 12, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG6[6][8] = {{47, 14, 22, 47, 87, 1, 74, 38},{75, 29, 52, 22, 22, 65, 0, 82},{1, 68, 71, 70, 59, 67, 82, 73},{6, 67, 28, 5, 82, 68, 55, 24},{81, 26, 14, 73, 28, 30, 21, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG6[6][8] = {{52, 88, 91, 1, 12, 6, 6, 9},{43, 94, 80, 41, 6, 12, 86, 21},{1, 56, 30, 63, 62, 15, 96, 87},{16, 18, 3, 68, 80, 5, 42, 28},{46, 78, 51, 44, 87, 30, 95, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG6[6][8] = {{100, 78, 63, 63, 59, 77, 77, 32},{65, 32, 112, 95, 108, 67, 2, 58},{34, 84, 106, 60, 39, 83, 95, 2},{58, 5, 99, 23, 18, 47, 65, 36},{30, 85, 9, 14, 76, 10, 96, 58},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG6[6][8] = {{17, 0, 7, 10, 28, 23, 25, 16},{24, 17, 4, 9, 9, 26, 25, 22},{23, 17, 27, 8, 8, 25, 13, 12},{25, 19, 1, 27, 31, 15, 3, 20},{30, 26, 16, 19, 0, 0, 11, 30},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG6[6][8] = {{25, 13, 20, 34, 1, 43, 13, 10},{33, 2, 15, 19, 21, 14, 6, 14},{26, 9, 33, 40, 8, 24, 40, 43},{19, 1, 22, 36, 2, 5, 21, 3},{34, 9, 39, 4, 5, 11, 1, 42},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG6[6][8] = {{39, 69, 17, 20, 64, 61, 79, 49},{62, 60, 67, 54, 21, 2, 15, 40},{63, 45, 48, 51, 21, 40, 52, 30},{0, 35, 51, 61, 30, 50, 43, 27},{37, 60, 68, 55, 41, 10, 23, 41},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG6[6][8] = {{81, 42, 56, 87, 8, 105, 80, 49},{56, 52, 110, 110, 6, 98, 19, 45},{72, 43, 88, 88, 103, 9, 108, 64},{105, 77, 63, 31, 86, 102, 50, 81},{78, 101, 4, 74, 8, 71, 106, 12},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG6[6][8] = {{87, 126, 9, 17, 0, 121, 64, 92},{0, 13, 137, 7, 0, 81, 46, 55},{72, 99, 0, 0, 118, 90, 122, 0},{47, 54, 0, 97, 0, 0, 9, 122},{36, 0, 18, 0, 0, 84, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG6[6][8] = {{135, 14, 110, 47, 87, 89, 162, 38},{75, 117, 52, 110, 110, 65, 88, 170},{89, 156, 71, 70, 147, 155, 170, 73},{94, 155, 116, 5, 82, 68, 143, 112},{81, 114, 14, 73, 28, 30, 109, 18},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG6[6][8] = {{52, 88, 91, 1, 12, 6, 6, 9},{147, 198, 184, 41, 6, 12, 86, 125},{1, 160, 30, 167, 166, 15, 96, 191},{16, 122, 3, 68, 184, 5, 42, 28},{46, 182, 155, 148, 191, 30, 199, 6},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG6[6][8] = {{220, 78, 183, 183, 179, 77, 197, 32},{185, 152, 112, 215, 108, 187, 122, 178},{154, 84, 106, 180, 159, 203, 215, 2},{178, 5, 219, 143, 138, 167, 65, 156},{150, 205, 129, 14, 196, 130, 216, 58},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG6[6][8] = {{49, 0, 7, 42, 60, 23, 57, 48},{56, 49, 36, 41, 9, 58, 57, 22},{23, 49, 59, 8, 8, 25, 45, 44},{57, 51, 1, 27, 63, 47, 3, 52},{62, 26, 16, 19, 32, 32, 43, 30},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG6[6][8] = {{25, 13, 68, 34, 49, 91, 13, 10},{81, 50, 15, 67, 21, 14, 6, 62},{74, 57, 81, 88, 56, 72, 40, 43},{19, 1, 70, 36, 50, 53, 21, 51},{82, 57, 87, 4, 5, 59, 1, 42},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG6[6][8] = {{39, 69, 97, 100, 64, 141, 79, 129},{142, 140, 147, 134, 21, 2, 15, 120},{143, 45, 128, 131, 101, 40, 132, 110},{0, 115, 51, 141, 110, 130, 123, 27},{37, 140, 68, 135, 41, 10, 103, 121},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG6[6][8] = {{81, 154, 56, 199, 8, 105, 192, 49},{56, 164, 110, 110, 6, 210, 131, 157},{72, 43, 200, 200, 103, 121, 220, 64},{217, 189, 63, 143, 198, 214, 50, 193},{78, 101, 4, 186, 8, 183, 106, 124},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG6[6][8] = {{231, 270, 153, 161, 0, 265, 64, 236},{0, 13, 137, 151, 0, 81, 46, 199},{216, 99, 0, 0, 118, 90, 266, 0},{47, 54, 0, 241, 144, 144, 9, 266},{36, 0, 162, 144, 0, 228, 18, 0},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG6[6][8] = {{311, 190, 110, 47, 87, 89, 162, 38},{251, 293, 228, 286, 110, 65, 264, 170},{265, 332, 247, 246, 147, 155, 346, 249},{94, 331, 116, 181, 258, 244, 143, 288},{81, 114, 190, 73, 204, 30, 109, 194},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG6[6][8] = {{49, 64, 7, 42, 60, 23, 121, 112},{120, 49, 36, 105, 73, 58, 121, 86},{23, 49, 59, 8, 72, 89, 109, 108},{57, 51, 1, 27, 127, 47, 3, 116},{62, 26, 16, 19, 96, 32, 43, 94},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG6[6][8] = {{121, 13, 68, 130, 145, 187, 13, 106},{177, 146, 111, 163, 21, 14, 102, 158},{74, 57, 81, 88, 152, 72, 136, 43},{115, 97, 166, 132, 50, 149, 21, 147},{178, 57, 183, 4, 5, 59, 97, 42},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG6[6][8] = {{39, 69, 257, 260, 64, 301, 79, 289},{302, 140, 147, 294, 181, 162, 175, 280},{303, 45, 128, 291, 101, 40, 132, 110},{160, 115, 51, 141, 270, 130, 283, 187},{37, 300, 228, 295, 41, 10, 103, 281},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG6[6][8] = {{177, 64, 7, 42, 60, 151, 249, 112},{248, 49, 164, 233, 73, 186, 121, 86},{151, 49, 59, 8, 72, 217, 109, 236},{185, 51, 1, 155, 127, 47, 131, 116},{62, 154, 144, 147, 224, 160, 171, 222},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG6[6][8] = {{313, 13, 260, 130, 145, 187, 205, 298},{177, 338, 303, 163, 213, 206, 102, 158},{266, 57, 81, 280, 344, 264, 328, 235},{115, 289, 358, 132, 242, 341, 213, 339},{370, 57, 375, 4, 197, 59, 97, 234},{0, 0, 0, 0, 0, 0, 0, 0}}; - -// Group of CNs with 7 BNs (CNG7) ->[Num BNs][Num of CN with 7 BNs] -static const uint16_t circShift_BG1_Z2_CNG7[7][5] = {{0, 0, 0, 0, 0},{0, 1, 0, 1, 0},{1, 1, 1, 0, 1},{1, 0, 0, 1, 1},{1, 1, 0, 0, 1},{0, 0, 1, 1, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG7[7][5] = {{0, 2, 2, 1, 1},{2, 0, 0, 2, 2},{1, 1, 0, 2, 0},{0, 0, 1, 2, 0},{2, 2, 2, 2, 1},{0, 0, 2, 0, 2},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG7[7][5] = {{2, 4, 4, 3, 4},{3, 0, 0, 4, 0},{2, 1, 4, 4, 0},{0, 0, 3, 1, 0},{0, 1, 0, 4, 4},{1, 1, 2, 3, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG7[7][5] = {{3, 5, 2, 0, 6},{6, 4, 0, 0, 1},{6, 6, 3, 1, 5},{2, 5, 3, 2, 6},{3, 5, 0, 2, 6},{4, 5, 0, 1, 4},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG7[7][5] = {{7, 7, 0, 0, 8},{0, 1, 0, 6, 0},{1, 1, 1, 1, 3},{4, 6, 7, 7, 0},{5, 0, 4, 0, 5},{2, 3, 0, 7, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG7[7][5] = {{3, 10, 2, 0, 0},{4, 0, 8, 3, 7},{4, 5, 10, 2, 4},{0, 0, 0, 2, 4},{6, 5, 0, 0, 0},{6, 3, 10, 1, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG7[7][5] = {{2, 9, 6, 1, 4},{10, 12, 7, 7, 6},{8, 0, 8, 1, 3},{10, 3, 10, 0, 0},{3, 12, 0, 1, 1},{11, 5, 12, 2, 7},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG7[7][5] = {{2, 11, 6, 4, 9},{11, 1, 5, 9, 3},{14, 10, 4, 2, 10},{2, 5, 0, 5, 8},{1, 10, 8, 12, 7},{3, 9, 5, 1, 4},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG7[7][5] = {{0, 2, 0, 2, 0},{0, 1, 2, 3, 0},{3, 3, 1, 2, 1},{3, 0, 0, 3, 3},{3, 1, 2, 0, 3},{0, 2, 3, 1, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG7[7][5] = {{3, 5, 5, 4, 1},{2, 3, 0, 2, 2},{4, 4, 0, 5, 0},{3, 3, 4, 5, 0},{2, 5, 2, 5, 1},{0, 0, 2, 0, 5},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG7[7][5] = {{2, 4, 9, 8, 9},{8, 0, 5, 9, 0},{7, 1, 9, 4, 0},{0, 5, 8, 1, 0},{5, 1, 5, 9, 4},{6, 1, 2, 8, 1},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG7[7][5] = {{3, 12, 2, 0, 6},{6, 11, 7, 7, 8},{6, 6, 10, 1, 5},{2, 5, 3, 9, 13},{10, 12, 0, 9, 13},{4, 5, 0, 1, 11},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG7[7][5] = {{7, 16, 9, 0, 8},{9, 1, 0, 6, 0},{10, 10, 10, 1, 3},{4, 15, 7, 16, 0},{14, 0, 4, 0, 14},{2, 3, 9, 7, 10},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG7[7][5] = {{3, 21, 13, 0, 0},{15, 11, 19, 14, 18},{4, 5, 10, 13, 15},{11, 11, 0, 2, 15},{17, 5, 0, 0, 0},{17, 3, 10, 12, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG7[7][5] = {{15, 22, 6, 1, 17},{10, 25, 20, 20, 6},{8, 0, 21, 14, 3},{23, 16, 23, 0, 0},{3, 12, 0, 1, 1},{24, 18, 25, 2, 20},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG7[7][5] = {{17, 26, 6, 4, 9},{26, 1, 5, 24, 18},{29, 10, 4, 2, 10},{2, 20, 0, 5, 23},{16, 25, 8, 12, 22},{18, 24, 20, 16, 19},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG7[7][5] = {{4, 2, 0, 6, 0},{4, 5, 2, 7, 0},{7, 7, 5, 6, 1},{7, 0, 0, 7, 7},{7, 1, 2, 0, 3},{0, 2, 7, 5, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG7[7][5] = {{9, 5, 5, 10, 1},{2, 3, 6, 8, 2},{4, 10, 6, 5, 6},{9, 3, 4, 5, 6},{2, 11, 2, 11, 7},{6, 6, 2, 0, 5},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG7[7][5] = {{12, 14, 9, 18, 9},{8, 0, 15, 19, 10},{7, 11, 9, 14, 0},{10, 15, 8, 1, 10},{5, 1, 5, 19, 4},{16, 11, 12, 18, 11},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG7[7][5] = {{17, 26, 2, 14, 6},{20, 25, 7, 7, 8},{20, 6, 24, 15, 19},{16, 19, 3, 23, 13},{10, 26, 0, 23, 13},{18, 19, 14, 15, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG7[7][5] = {{25, 34, 9, 0, 26},{9, 1, 18, 6, 0},{10, 28, 28, 1, 3},{4, 15, 7, 16, 0},{32, 18, 22, 0, 32},{20, 21, 27, 7, 28},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG7[7][5] = {{3, 43, 35, 22, 0},{15, 33, 41, 14, 40},{4, 27, 10, 13, 15},{33, 11, 22, 24, 37},{39, 5, 0, 22, 0},{39, 3, 32, 34, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG7[7][5] = {{41, 22, 6, 1, 17},{36, 25, 20, 46, 6},{8, 0, 47, 14, 29},{49, 16, 49, 26, 26},{3, 12, 0, 1, 1},{24, 18, 51, 2, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG7[7][5] = {{17, 56, 6, 4, 39},{26, 31, 35, 24, 18},{29, 10, 4, 2, 40},{32, 50, 0, 35, 53},{46, 55, 38, 12, 22},{18, 24, 20, 16, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG7[7][5] = {{12, 2, 0, 14, 8},{12, 5, 10, 7, 0},{15, 7, 5, 14, 1},{15, 0, 0, 15, 15},{7, 1, 10, 0, 11},{8, 10, 7, 5, 3},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG7[7][5] = {{9, 5, 5, 22, 1},{14, 3, 18, 8, 2},{4, 10, 6, 17, 18},{21, 15, 16, 17, 6},{2, 23, 2, 11, 7},{18, 18, 2, 12, 5},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG7[7][5] = {{12, 14, 29, 38, 29},{8, 0, 35, 19, 10},{7, 11, 9, 14, 20},{10, 35, 8, 21, 10},{25, 1, 25, 19, 24},{36, 31, 12, 18, 11},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG7[7][5] = {{17, 26, 30, 14, 34},{20, 53, 7, 7, 8},{48, 6, 24, 43, 19},{44, 19, 3, 23, 41},{38, 26, 28, 51, 41},{46, 47, 14, 43, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG7[7][5] = {{25, 34, 9, 0, 26},{45, 1, 18, 42, 0},{10, 28, 28, 37, 39},{40, 51, 7, 16, 36},{32, 18, 22, 0, 68},{20, 57, 27, 7, 64},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG7[7][5] = {{3, 87, 35, 22, 0},{15, 77, 41, 58, 84},{48, 27, 54, 13, 15},{33, 55, 22, 68, 81},{39, 49, 0, 66, 0},{39, 3, 76, 78, 25},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG7[7][5] = {{41, 22, 6, 1, 69},{88, 77, 20, 98, 6},{8, 52, 99, 14, 81},{49, 16, 49, 26, 78},{55, 12, 0, 1, 53},{76, 70, 103, 2, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG7[7][5] = {{77, 116, 66, 4, 39},{26, 31, 95, 24, 18},{89, 70, 4, 62, 100},{32, 110, 60, 95, 53},{46, 115, 98, 72, 22},{18, 84, 80, 76, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG7[7][5] = {{28, 2, 0, 14, 8},{12, 21, 10, 23, 0},{31, 7, 21, 14, 1},{31, 0, 0, 31, 31},{7, 17, 10, 16, 11},{8, 26, 7, 5, 19},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG7[7][5] = {{9, 5, 29, 46, 1},{14, 3, 42, 8, 2},{28, 34, 30, 41, 18},{45, 15, 40, 41, 30},{2, 47, 2, 11, 7},{18, 18, 26, 12, 29},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG7[7][5] = {{12, 14, 69, 78, 69},{8, 0, 75, 59, 50},{47, 51, 9, 54, 60},{50, 75, 48, 61, 50},{25, 1, 25, 19, 24},{76, 71, 52, 18, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG7[7][5] = {{17, 82, 30, 14, 90},{76, 53, 63, 63, 8},{104, 62, 24, 99, 19},{100, 19, 3, 79, 97},{38, 82, 28, 51, 97},{46, 103, 70, 43, 81},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG7[7][5] = {{25, 34, 81, 0, 26},{45, 1, 18, 42, 0},{10, 28, 100, 109, 39},{40, 123, 7, 16, 108},{104, 90, 94, 0, 68},{20, 57, 99, 79, 64},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG7[7][5] = {{3, 175, 123, 22, 0},{103, 77, 41, 146, 172},{48, 27, 142, 101, 15},{121, 55, 110, 156, 81},{39, 49, 0, 66, 0},{39, 91, 76, 78, 113},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG7[7][5] = {{145, 126, 6, 1, 173},{88, 77, 20, 202, 6},{112, 156, 203, 118, 81},{153, 16, 153, 130, 182},{159, 12, 104, 1, 53},{76, 70, 207, 2, 46},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG7[7][5] = {{77, 116, 186, 124, 39},{146, 151, 215, 144, 138},{209, 70, 124, 182, 220},{32, 230, 180, 95, 173},{166, 115, 98, 72, 142},{18, 84, 80, 76, 49},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG7[7][5] = {{28, 34, 32, 14, 40},{44, 21, 42, 55, 32},{31, 39, 21, 14, 1},{31, 32, 32, 63, 63},{39, 49, 42, 16, 11},{40, 58, 7, 37, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG7[7][5] = {{9, 5, 77, 46, 49},{62, 51, 90, 56, 2},{28, 82, 78, 41, 18},{45, 15, 40, 89, 30},{2, 95, 50, 59, 55},{18, 66, 74, 12, 77},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG7[7][5] = {{12, 14, 69, 78, 69},{88, 80, 75, 139, 130},{47, 51, 9, 54, 60},{50, 75, 48, 61, 130},{25, 1, 105, 19, 24},{76, 151, 52, 98, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG7[7][5] = {{17, 82, 142, 14, 90},{76, 165, 175, 175, 120},{104, 174, 136, 211, 131},{100, 19, 3, 191, 209},{150, 194, 28, 51, 209},{158, 103, 182, 43, 81},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG7[7][5] = {{169, 178, 225, 0, 170},{189, 1, 162, 186, 0},{154, 28, 244, 253, 183},{184, 267, 151, 16, 108},{104, 234, 238, 0, 68},{164, 201, 243, 79, 64},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG7[7][5] = {{3, 175, 123, 22, 176},{103, 253, 217, 322, 348},{224, 27, 142, 277, 15},{297, 231, 110, 156, 81},{215, 49, 176, 66, 176},{39, 267, 76, 78, 113},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG7[7][5] = {{92, 98, 32, 78, 40},{44, 21, 42, 55, 96},{31, 39, 21, 78, 65},{31, 32, 32, 127, 63},{39, 49, 106, 16, 75},{104, 58, 7, 101, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG7[7][5] = {{9, 101, 77, 142, 49},{62, 147, 186, 56, 2},{124, 82, 174, 137, 18},{141, 111, 40, 89, 126},{98, 191, 50, 155, 55},{114, 162, 74, 12, 77},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG7[7][5] = {{12, 14, 229, 78, 229},{88, 80, 235, 299, 290},{207, 211, 169, 54, 60},{50, 75, 48, 61, 130},{25, 161, 105, 179, 184},{76, 311, 52, 258, 51},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG7[7][5] = {{220, 98, 160, 206, 40},{44, 149, 42, 55, 96},{159, 167, 21, 206, 65},{31, 160, 32, 127, 63},{167, 49, 234, 16, 75},{104, 58, 7, 229, 179},{0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG7[7][5] = {{9, 101, 77, 142, 241},{62, 339, 186, 248, 2},{316, 274, 174, 137, 210},{333, 111, 232, 89, 318},{290, 383, 50, 347, 55},{114, 354, 74, 12, 269},{0, 0, 0, 0, 0}}; - -// Group of CNs with 8 BNs (CNG8) ->[Num BNs][Num of CN with 8 BNs] -static const uint16_t circShift_BG1_Z2_CNG8[8][2] = {{1, 1},{0, 1},{0, 1},{1, 0},{0, 0},{1, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG8[8][2] = {{0, 0},{2, 0},{1, 2},{1, 2},{1, 2},{0, 1},{1, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG8[8][2] = {{3, 1},{2, 2},{0, 0},{3, 4},{1, 2},{2, 3},{4, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG8[8][2] = {{3, 3},{3, 4},{2, 2},{3, 0},{0, 4},{4, 0},{6, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG8[8][2] = {{0, 1},{1, 5},{0, 4},{4, 1},{2, 3},{7, 3},{0, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG8[8][2] = {{10, 3},{9, 3},{9, 2},{3, 10},{9, 1},{5, 8},{8, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG8[8][2] = {{3, 2},{9, 12},{11, 6},{0, 3},{12, 0},{5, 5},{7, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG8[8][2] = {{2, 0},{6, 10},{2, 14},{8, 1},{0, 2},{0, 0},{0, 2},{0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG8[8][2] = {{1, 1},{0, 1},{2, 3},{3, 2},{0, 2},{3, 0},{3, 2},{0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG8[8][2] = {{3, 0},{2, 0},{1, 2},{4, 5},{1, 2},{3, 4},{1, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG8[8][2] = {{3, 6},{2, 7},{0, 0},{8, 9},{1, 7},{7, 3},{9, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG8[8][2] = {{10, 10},{3, 11},{2, 2},{10, 7},{0, 4},{4, 0},{13, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG8[8][2] = {{9, 1},{1, 5},{0, 4},{13, 1},{2, 3},{7, 3},{0, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG8[8][2] = {{21, 3},{20, 14},{9, 2},{14, 21},{9, 12},{16, 8},{19, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG8[8][2] = {{3, 2},{22, 12},{24, 19},{13, 16},{25, 0},{5, 5},{20, 20},{0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG8[8][2] = {{2, 15},{21, 25},{17, 14},{23, 1},{0, 2},{0, 15},{0, 17},{0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG8[8][2] = {{5, 5},{4, 1},{2, 3},{7, 6},{4, 6},{3, 4},{3, 6},{0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG8[8][2] = {{3, 0},{2, 6},{7, 8},{10, 11},{1, 8},{3, 10},{1, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG8[8][2] = {{3, 16},{12, 7},{10, 10},{18, 9},{1, 17},{7, 3},{19, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG8[8][2] = {{24, 24},{3, 11},{2, 2},{24, 7},{14, 4},{18, 0},{13, 5},{0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG8[8][2] = {{9, 19},{1, 23},{0, 22},{31, 1},{2, 21},{7, 3},{0, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG8[8][2] = {{43, 25},{42, 14},{31, 24},{14, 43},{31, 34},{38, 30},{19, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG8[8][2] = {{29, 28},{48, 38},{24, 19},{13, 16},{51, 0},{5, 5},{20, 20},{0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG8[8][2] = {{2, 45},{51, 55},{47, 14},{23, 1},{30, 32},{0, 45},{0, 47},{0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG8[8][2] = {{13, 13},{12, 9},{2, 3},{7, 6},{12, 14},{11, 12},{3, 6},{0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG8[8][2] = {{3, 0},{14, 6},{19, 8},{22, 23},{1, 20},{3, 22},{13, 19},{0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG8[8][2] = {{3, 16},{12, 27},{10, 10},{38, 9},{1, 17},{27, 3},{39, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG8[8][2] = {{52, 52},{3, 11},{30, 2},{24, 35},{14, 32},{18, 28},{41, 33},{0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG8[8][2] = {{45, 55},{37, 23},{0, 58},{67, 37},{38, 57},{7, 39},{0, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG8[8][2] = {{43, 25},{42, 58},{75, 24},{58, 87},{31, 78},{82, 74},{19, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG8[8][2] = {{81, 80},{100, 90},{24, 19},{65, 16},{103, 0},{57, 5},{72, 20},{0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG8[8][2] = {{2, 45},{51, 115},{47, 14},{23, 1},{90, 32},{60, 45},{60, 107},{0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG8[8][2] = {{13, 13},{12, 9},{2, 19},{7, 22},{28, 14},{27, 28},{19, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG8[8][2] = {{3, 0},{14, 6},{19, 8},{22, 47},{1, 44},{3, 46},{13, 19},{0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG8[8][2] = {{3, 16},{52, 67},{50, 50},{78, 49},{41, 17},{27, 43},{39, 40},{0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG8[8][2] = {{52, 52},{59, 11},{86, 2},{80, 35},{70, 32},{18, 84},{41, 89},{0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG8[8][2] = {{117, 55},{37, 23},{72, 130},{139, 37},{110, 129},{79, 39},{0, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG8[8][2] = {{43, 25},{130, 146},{75, 24},{146, 175},{119, 166},{82, 162},{107, 16},{0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG8[8][2] = {{185, 184},{100, 194},{24, 123},{65, 16},{207, 104},{161, 109},{72, 124},{0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG8[8][2] = {{2, 45},{171, 115},{47, 134},{143, 1},{210, 152},{180, 165},{180, 107},{0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG8[8][2] = {{13, 13},{44, 41},{2, 19},{39, 54},{28, 14},{59, 60},{51, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG8[8][2] = {{3, 48},{14, 6},{19, 8},{70, 47},{49, 92},{51, 46},{61, 19},{0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG8[8][2] = {{83, 16},{132, 147},{50, 130},{158, 129},{41, 17},{107, 43},{119, 120},{0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG8[8][2] = {{164, 52},{59, 11},{86, 2},{80, 35},{182, 32},{130, 84},{153, 201},{0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG8[8][2] = {{261, 55},{181, 23},{72, 274},{283, 181},{254, 273},{79, 39},{144, 26},{0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG8[8][2] = {{219, 25},{130, 322},{251, 200},{322, 351},{295, 166},{258, 338},{283, 192},{0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG8[8][2] = {{77, 77},{108, 41},{66, 83},{103, 54},{28, 78},{123, 124},{115, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG8[8][2] = {{3, 48},{14, 102},{115, 8},{166, 47},{49, 188},{51, 142},{157, 115},{0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG8[8][2] = {{83, 16},{292, 147},{50, 290},{318, 289},{201, 177},{267, 43},{279, 280},{0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG8[8][2] = {{205, 77},{236, 41},{194, 83},{231, 182},{28, 78},{123, 252},{115, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG8[8][2] = {{195, 48},{14, 102},{115, 8},{166, 47},{241, 188},{51, 334},{157, 115},{0, 0}}; - -// Group of CNs with 9 BNs (CNG9) ->[Num BNs][Num of CN with 9 BNs] -static const uint16_t circShift_BG1_Z2_CNG9[9][2] = {{1, 1},{0, 0},{0, 1},{1, 1},{0, 0},{1, 0},{1, 1},{1, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG9[9][2] = {{2, 0},{2, 1},{1, 0},{0, 1},{2, 0},{1, 0},{0, 0},{0, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG9[9][2] = {{4, 4},{1, 4},{3, 1},{3, 1},{2, 1},{2, 2},{3, 0},{0, 4},{0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG9[9][2] = {{4, 2},{0, 2},{1, 3},{0, 0},{0, 5},{2, 3},{3, 4},{4, 1},{0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG9[9][2] = {{8, 0},{0, 6},{7, 3},{0, 8},{5, 0},{6, 6},{7, 4},{0, 2},{0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG9[9][2] = {{8, 2},{7, 0},{0, 7},{0, 1},{7, 4},{7, 9},{9, 1},{8, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG9[9][2] = {{6, 6},{1, 10},{7, 2},{11, 1},{9, 6},{11, 4},{12, 8},{0, 4},{0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG9[9][2] = {{4, 4},{7, 12},{8, 11},{10, 11},{2, 2},{12, 2},{7, 2},{13, 10},{0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG9[9][2] = {{3, 3},{2, 2},{0, 1},{3, 1},{0, 2},{3, 2},{1, 1},{3, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG9[9][2] = {{2, 0},{5, 4},{1, 3},{3, 1},{2, 3},{1, 3},{0, 3},{3, 4},{0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG9[9][2] = {{9, 9},{1, 4},{3, 6},{3, 6},{2, 1},{2, 7},{8, 5},{5, 9},{0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG9[9][2] = {{4, 9},{7, 9},{1, 3},{7, 7},{7, 5},{9, 3},{10, 11},{4, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG9[9][2] = {{8, 0},{0, 15},{7, 3},{0, 8},{5, 9},{15, 6},{7, 4},{0, 11},{0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG9[9][2] = {{8, 2},{7, 0},{0, 7},{11, 1},{18, 4},{18, 20},{20, 1},{19, 7},{0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG9[9][2] = {{6, 6},{1, 10},{7, 15},{24, 1},{22, 19},{24, 4},{12, 8},{13, 17},{0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG9[9][2] = {{19, 19},{22, 12},{23, 26},{10, 11},{2, 17},{27, 2},{22, 2},{13, 25},{0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG9[9][2] = {{7, 7},{6, 6},{4, 5},{3, 5},{4, 6},{3, 6},{5, 5},{3, 0},{0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG9[9][2] = {{2, 6},{5, 4},{1, 9},{3, 1},{8, 9},{1, 3},{6, 3},{9, 10},{0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG9[9][2] = {{9, 9},{1, 4},{13, 16},{13, 6},{12, 11},{2, 7},{18, 15},{15, 9},{0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG9[9][2] = {{18, 9},{7, 9},{1, 17},{21, 21},{7, 5},{23, 17},{24, 25},{4, 22},{0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG9[9][2] = {{8, 18},{0, 15},{25, 21},{18, 26},{23, 9},{33, 24},{7, 4},{0, 29},{0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG9[9][2] = {{30, 24},{29, 0},{22, 29},{11, 23},{40, 4},{18, 20},{20, 23},{41, 29},{0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG9[9][2] = {{6, 6},{27, 10},{7, 41},{50, 1},{48, 45},{24, 4},{38, 8},{39, 17},{0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG9[9][2] = {{19, 49},{22, 12},{23, 26},{40, 41},{32, 17},{27, 32},{52, 32},{13, 25},{0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG9[9][2] = {{7, 7},{6, 6},{12, 13},{3, 5},{4, 14},{11, 14},{13, 13},{3, 8},{0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG9[9][2] = {{14, 6},{17, 16},{1, 9},{15, 13},{20, 9},{13, 15},{18, 15},{9, 10},{0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG9[9][2] = {{9, 29},{21, 4},{13, 36},{13, 6},{32, 31},{22, 27},{18, 15},{35, 9},{0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG9[9][2] = {{46, 9},{7, 37},{1, 45},{21, 49},{7, 33},{51, 17},{24, 53},{4, 50},{0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG9[9][2] = {{8, 18},{0, 15},{25, 21},{18, 62},{59, 45},{33, 60},{7, 4},{36, 65},{0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG9[9][2] = {{30, 68},{73, 0},{66, 29},{11, 23},{84, 4},{62, 64},{20, 23},{41, 73},{0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG9[9][2] = {{6, 6},{27, 10},{59, 41},{50, 53},{48, 97},{24, 4},{38, 60},{91, 69},{0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG9[9][2] = {{79, 49},{22, 12},{23, 86},{100, 101},{92, 17},{87, 92},{52, 92},{13, 85},{0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG9[9][2] = {{23, 7},{22, 22},{28, 13},{3, 21},{20, 14},{11, 14},{29, 29},{19, 24},{0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG9[9][2] = {{38, 30},{17, 40},{1, 33},{15, 37},{44, 9},{13, 15},{18, 15},{33, 34},{0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG9[9][2] = {{49, 29},{21, 4},{53, 36},{13, 46},{72, 71},{62, 27},{58, 55},{75, 49},{0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG9[9][2] = {{46, 9},{7, 37},{1, 101},{21, 105},{63, 89},{51, 73},{24, 109},{4, 106},{0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG9[9][2] = {{80, 18},{0, 15},{25, 93},{90, 134},{59, 45},{33, 132},{7, 76},{108, 65},{0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG9[9][2] = {{118, 156},{73, 88},{154, 117},{99, 111},{172, 92},{150, 152},{108, 23},{129, 161},{0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG9[9][2] = {{6, 6},{27, 10},{163, 145},{50, 53},{48, 201},{24, 4},{38, 164},{91, 173},{0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG9[9][2] = {{199, 169},{22, 12},{23, 206},{100, 221},{92, 17},{207, 212},{52, 92},{13, 205},{0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG9[9][2] = {{55, 39},{22, 54},{28, 45},{3, 21},{52, 14},{11, 14},{29, 61},{19, 24},{0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG9[9][2] = {{86, 78},{65, 40},{1, 33},{63, 37},{92, 57},{61, 15},{18, 63},{33, 82},{0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG9[9][2] = {{129, 29},{21, 84},{133, 36},{13, 126},{72, 151},{142, 107},{138, 135},{75, 49},{0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG9[9][2] = {{158, 9},{119, 37},{113, 213},{21, 105},{63, 89},{51, 185},{136, 109},{116, 218},{0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG9[9][2] = {{80, 162},{144, 159},{169, 93},{90, 134},{59, 45},{177, 132},{151, 76},{108, 209},{0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG9[9][2] = {{294, 156},{73, 88},{330, 293},{99, 111},{172, 92},{150, 152},{284, 23},{305, 337},{0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG9[9][2] = {{55, 103},{22, 54},{28, 109},{67, 21},{116, 14},{11, 14},{29, 61},{83, 88},{0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG9[9][2] = {{86, 174},{65, 40},{1, 129},{159, 133},{92, 57},{61, 111},{18, 63},{33, 82},{0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG9[9][2] = {{289, 189},{21, 244},{293, 36},{13, 286},{232, 151},{302, 267},{138, 135},{235, 209},{0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG9[9][2] = {{183, 103},{22, 182},{28, 109},{67, 21},{244, 142},{11, 14},{157, 61},{211, 216},{0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG9[9][2] = {{278, 366},{257, 232},{1, 321},{351, 133},{92, 57},{253, 303},{18, 63},{225, 82},{0, 0}}; - -// Group of CNs with 10 BNs (CNG10) ->[Num BNs][Num of CN with 10 BNs] -static const uint16_t circShift_BG1_Z2_CNG10[10][1] = {{0},{0},{1},{1},{0},{0},{1},{1},{0},{0}}; -static const uint16_t circShift_BG1_Z3_CNG10[10][1] = {{1},{2},{0},{0},{0},{2},{2},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z5_CNG10[10][1] = {{0},{3},{0},{1},{1},{0},{4},{0},{4},{0}}; -static const uint16_t circShift_BG1_Z7_CNG10[10][1] = {{5},{4},{4},{0},{1},{4},{2},{2},{5},{0}}; -static const uint16_t circShift_BG1_Z9_CNG10[10][1] = {{0},{0},{0},{5},{8},{1},{6},{5},{0},{0}}; -static const uint16_t circShift_BG1_Z11_CNG10[10][1] = {{7},{9},{0},{4},{4},{6},{4},{6},{2},{0}}; -static const uint16_t circShift_BG1_Z13_CNG10[10][1] = {{3},{2},{1},{11},{5},{8},{10},{9},{12},{0}}; -static const uint16_t circShift_BG1_Z15_CNG10[10][1] = {{1},{0},{6},{13},{12},{10},{4},{3},{8},{0}}; -static const uint16_t circShift_BG1_Z4_CNG10[10][1] = {{0},{0},{3},{3},{2},{0},{1},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z6_CNG10[10][1] = {{1},{5},{3},{0},{3},{2},{2},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z10_CNG10[10][1] = {{5},{3},{0},{1},{6},{0},{9},{5},{4},{0}}; -static const uint16_t circShift_BG1_Z14_CNG10[10][1] = {{5},{11},{4},{7},{8},{11},{2},{2},{5},{0}}; -static const uint16_t circShift_BG1_Z18_CNG10[10][1] = {{0},{0},{0},{5},{8},{10},{15},{14},{0},{0}}; -static const uint16_t circShift_BG1_Z22_CNG10[10][1] = {{18},{9},{0},{4},{4},{17},{15},{6},{2},{0}}; -static const uint16_t circShift_BG1_Z26_CNG10[10][1] = {{16},{2},{1},{11},{18},{21},{23},{9},{12},{0}}; -static const uint16_t circShift_BG1_Z30_CNG10[10][1] = {{1},{15},{21},{13},{27},{25},{19},{3},{8},{0}}; -static const uint16_t circShift_BG1_Z8_CNG10[10][1] = {{0},{4},{7},{3},{6},{4},{5},{1},{2},{0}}; -static const uint16_t circShift_BG1_Z12_CNG10[10][1] = {{7},{11},{9},{6},{3},{8},{8},{7},{2},{0}}; -static const uint16_t circShift_BG1_Z20_CNG10[10][1] = {{15},{13},{10},{11},{16},{10},{9},{5},{14},{0}}; -static const uint16_t circShift_BG1_Z28_CNG10[10][1] = {{5},{11},{4},{21},{8},{11},{2},{16},{5},{0}}; -static const uint16_t circShift_BG1_Z36_CNG10[10][1] = {{18},{0},{0},{5},{26},{10},{15},{14},{18},{0}}; -static const uint16_t circShift_BG1_Z44_CNG10[10][1] = {{40},{31},{22},{4},{4},{17},{15},{6},{24},{0}}; -static const uint16_t circShift_BG1_Z52_CNG10[10][1] = {{16},{2},{27},{37},{44},{47},{49},{35},{12},{0}}; -static const uint16_t circShift_BG1_Z60_CNG10[10][1] = {{1},{45},{21},{43},{57},{25},{19},{33},{38},{0}}; -static const uint16_t circShift_BG1_Z16_CNG10[10][1] = {{0},{4},{7},{3},{6},{4},{13},{1},{10},{0}}; -static const uint16_t circShift_BG1_Z24_CNG10[10][1] = {{19},{11},{21},{18},{15},{8},{8},{19},{2},{0}}; -static const uint16_t circShift_BG1_Z40_CNG10[10][1] = {{15},{13},{10},{31},{16},{30},{29},{5},{34},{0}}; -static const uint16_t circShift_BG1_Z56_CNG10[10][1] = {{33},{39},{4},{49},{36},{39},{2},{44},{33},{0}}; -static const uint16_t circShift_BG1_Z72_CNG10[10][1] = {{54},{0},{36},{41},{26},{46},{15},{14},{54},{0}}; -static const uint16_t circShift_BG1_Z88_CNG10[10][1] = {{84},{75},{22},{48},{48},{17},{59},{50},{68},{0}}; -static const uint16_t circShift_BG1_Z104_CNG10[10][1] = {{68},{2},{27},{37},{96},{99},{101},{35},{12},{0}}; -static const uint16_t circShift_BG1_Z120_CNG10[10][1] = {{61},{105},{21},{103},{57},{25},{79},{33},{38},{0}}; -static const uint16_t circShift_BG1_Z32_CNG10[10][1] = {{16},{4},{7},{19},{6},{4},{13},{17},{26},{0}}; -static const uint16_t circShift_BG1_Z48_CNG10[10][1] = {{19},{35},{21},{18},{39},{32},{32},{19},{26},{0}}; -static const uint16_t circShift_BG1_Z80_CNG10[10][1] = {{55},{53},{50},{71},{56},{30},{29},{5},{74},{0}}; -static const uint16_t circShift_BG1_Z112_CNG10[10][1] = {{33},{95},{4},{105},{92},{39},{58},{44},{89},{0}}; -static const uint16_t circShift_BG1_Z144_CNG10[10][1] = {{54},{0},{108},{41},{98},{46},{15},{86},{54},{0}}; -static const uint16_t circShift_BG1_Z176_CNG10[10][1] = {{172},{75},{22},{136},{48},{17},{59},{138},{68},{0}}; -static const uint16_t circShift_BG1_Z208_CNG10[10][1] = {{172},{2},{131},{141},{96},{99},{101},{35},{116},{0}}; -static const uint16_t circShift_BG1_Z240_CNG10[10][1] = {{181},{105},{141},{223},{177},{145},{199},{153},{38},{0}}; -static const uint16_t circShift_BG1_Z64_CNG10[10][1] = {{48},{4},{7},{19},{38},{36},{45},{49},{26},{0}}; -static const uint16_t circShift_BG1_Z96_CNG10[10][1] = {{19},{83},{69},{18},{39},{32},{80},{67},{74},{0}}; -static const uint16_t circShift_BG1_Z160_CNG10[10][1] = {{135},{133},{130},{71},{136},{110},{109},{85},{154},{0}}; -static const uint16_t circShift_BG1_Z224_CNG10[10][1] = {{33},{95},{4},{217},{204},{39},{58},{44},{201},{0}}; -static const uint16_t circShift_BG1_Z288_CNG10[10][1] = {{54},{0},{252},{41},{98},{46},{15},{230},{54},{0}}; -static const uint16_t circShift_BG1_Z352_CNG10[10][1] = {{348},{75},{22},{312},{224},{17},{59},{314},{244},{0}}; -static const uint16_t circShift_BG1_Z128_CNG10[10][1] = {{112},{4},{7},{83},{102},{36},{109},{113},{90},{0}}; -static const uint16_t circShift_BG1_Z192_CNG10[10][1] = {{115},{179},{165},{18},{39},{32},{176},{67},{170},{0}}; -static const uint16_t circShift_BG1_Z320_CNG10[10][1] = {{295},{133},{130},{231},{296},{110},{269},{245},{154},{0}}; -static const uint16_t circShift_BG1_Z256_CNG10[10][1] = {{112},{4},{7},{211},{102},{164},{109},{241},{90},{0}}; -static const uint16_t circShift_BG1_Z384_CNG10[10][1] = {{307},{179},{165},{18},{39},{224},{368},{67},{170},{0}}; - -// Group of CNs with 19 BNs (CNG19) ->[Num BNs][Num of CN with 19 BNs] -static const uint16_t circShift_BG1_Z2_CNG19[19][4] = {{0, 0, 0, 1},{1, 1, 1, 1},{0, 1, 1, 0},{1, 0, 1, 0},{0, 1, 1, 0},{0, 0, 1, 1},{1, 0, 1, 1},{1, 1, 1, 0},{0, 0, 1, 0},{1, 0, 1, 0},{1, 1, 0, 1},{1, 0, 1, 1},{1, 0, 1, 0},{0, 1, 1, 0},{1, 1, 1, 0},{1, 0, 1, 0},{1, 0, 1, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z3_CNG19[19][4] = {{1, 1, 1, 0},{1, 1, 1, 0},{2, 1, 1, 0},{0, 0, 2, 2},{1, 0, 1, 1},{0, 1, 2, 0},{2, 1, 0, 2},{0, 1, 1, 0},{1, 1, 0, 2},{2, 0, 0, 0},{0, 1, 2, 2},{2, 0, 1, 2},{1, 0, 2, 1},{2, 0, 2, 0},{0, 1, 0, 1},{0, 1, 1, 0},{1, 0, 1, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z5_CNG19[19][4] = {{3, 3, 3, 0},{0, 4, 2, 3},{3, 2, 0, 0},{4, 1, 0, 2},{0, 1, 3, 1},{4, 3, 2, 0},{0, 4, 2, 4},{2, 0, 0, 1},{0, 4, 1, 3},{4, 0, 1, 3},{3, 1, 0, 4},{3, 1, 3, 3},{0, 2, 1, 4},{3, 3, 4, 3},{1, 0, 1, 2},{4, 1, 0, 4},{2, 0, 1, 3},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z7_CNG19[19][4] = {{6, 1, 4, 5},{2, 3, 0, 4},{3, 4, 3, 4},{0, 4, 1, 5},{4, 0, 5, 3},{3, 3, 4, 2},{0, 0, 4, 2},{2, 3, 6, 6},{6, 3, 2, 1},{0, 2, 0, 3},{5, 2, 0, 0},{0, 2, 4, 6},{0, 6, 0, 5},{1, 5, 2, 4},{2, 3, 5, 1},{6, 5, 6, 2},{4, 0, 6, 4},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z9_CNG19[19][4] = {{4, 8, 6, 7},{0, 0, 5, 1},{8, 7, 4, 4},{6, 4, 7, 0},{3, 7, 0, 1},{4, 4, 4, 6},{2, 4, 2, 8},{0, 0, 0, 5},{8, 1, 0, 0},{0, 6, 3, 3},{7, 0, 2, 0},{8, 8, 4, 7},{0, 5, 0, 8},{5, 3, 0, 3},{0, 3, 8, 0},{1, 2, 2, 5},{0, 0, 0, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z11_CNG19[19][4] = {{8, 0, 6, 9},{8, 5, 2, 6},{2, 8, 4, 5},{0, 8, 5, 4},{9, 4, 1, 7},{0, 2, 1, 1},{1, 5, 7, 3},{8, 6, 6, 7},{1, 2, 8, 4},{9, 0, 6, 4},{3, 4, 0, 5},{9, 0, 0, 9},{6, 4, 4, 7},{7, 1, 10, 6},{2, 9, 9, 0},{3, 5, 1, 0},{1, 0, 7, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z13_CNG19[19][4] = {{0, 9, 2, 4},{0, 11, 11, 6},{0, 7, 8, 7},{0, 0, 11, 9},{0, 10, 4, 10},{0, 0, 6, 8},{0, 0, 9, 6},{0, 2, 12, 8},{0, 3, 5, 5},{0, 8, 0, 11},{0, 0, 12, 9},{0, 6, 2, 5},{0, 4, 7, 1},{0, 0, 8, 4},{0, 12, 10, 3},{0, 5, 3, 2},{0, 1, 1, 12},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z15_CNG19[19][4] = {{0, 6, 9, 8},{2, 11, 4, 8},{6, 1, 0, 12},{14, 11, 1, 10},{9, 8, 11, 13},{8, 2, 12, 6},{8, 7, 14, 6},{0, 11, 2, 1},{10, 11, 9, 6},{8, 9, 8, 7},{0, 5, 6, 9},{0, 10, 11, 2},{7, 3, 3, 5},{10, 12, 6, 2},{0, 13, 5, 10},{0, 6, 7, 7},{2, 0, 5, 9},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z4_CNG19[19][4] = {{2, 2, 2, 1},{1, 3, 3, 1},{2, 1, 1, 0},{3, 0, 3, 0},{0, 3, 1, 2},{2, 2, 1, 3},{3, 0, 1, 3},{1, 1, 1, 0},{2, 0, 3, 2},{3, 2, 3, 2},{1, 1, 2, 3},{3, 0, 1, 3},{3, 2, 1, 0},{2, 3, 1, 0},{3, 3, 1, 0},{3, 0, 3, 0},{3, 0, 1, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z6_CNG19[19][4] = {{1, 4, 1, 0},{1, 4, 4, 3},{2, 1, 4, 0},{3, 0, 2, 5},{1, 0, 4, 1},{0, 1, 5, 3},{5, 1, 3, 2},{0, 4, 4, 0},{1, 1, 3, 5},{5, 0, 3, 3},{3, 1, 2, 5},{5, 3, 4, 2},{4, 0, 5, 4},{2, 0, 5, 0},{0, 1, 0, 1},{0, 4, 1, 3},{4, 0, 1, 3},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z10_CNG19[19][4] = {{3, 3, 8, 0},{5, 4, 7, 8},{3, 7, 0, 0},{9, 1, 0, 7},{0, 1, 8, 1},{9, 3, 7, 5},{5, 4, 2, 9},{2, 0, 0, 1},{5, 9, 1, 3},{4, 0, 6, 3},{3, 6, 5, 4},{8, 6, 3, 3},{0, 2, 1, 4},{3, 3, 4, 8},{6, 0, 6, 7},{9, 1, 0, 9},{2, 0, 6, 8},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z14_CNG19[19][4] = {{13, 1, 11, 5},{2, 3, 7, 4},{10, 11, 3, 11},{7, 4, 8, 5},{4, 7, 12, 3},{10, 3, 4, 2},{0, 7, 11, 2},{9, 3, 13, 6},{6, 10, 9, 1},{7, 9, 0, 3},{5, 9, 7, 7},{0, 9, 4, 13},{0, 6, 7, 12},{1, 12, 2, 4},{2, 3, 5, 1},{6, 5, 13, 2},{11, 0, 6, 4},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z18_CNG19[19][4] = {{13, 17, 6, 7},{0, 0, 5, 1},{8, 7, 4, 4},{6, 4, 7, 0},{3, 16, 9, 10},{4, 4, 4, 6},{11, 4, 2, 17},{0, 9, 9, 5},{8, 1, 0, 0},{0, 15, 3, 3},{7, 0, 2, 0},{17, 8, 13, 7},{0, 14, 0, 8},{5, 3, 0, 3},{0, 12, 17, 0},{1, 11, 2, 5},{9, 0, 0, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z22_CNG19[19][4] = {{8, 11, 6, 9},{8, 5, 13, 6},{13, 8, 15, 5},{0, 8, 16, 15},{9, 4, 1, 7},{11, 2, 1, 12},{1, 16, 18, 3},{8, 6, 17, 18},{1, 13, 8, 4},{9, 11, 17, 15},{3, 4, 0, 5},{9, 0, 0, 9},{17, 15, 15, 7},{18, 1, 21, 17},{13, 9, 9, 11},{3, 16, 12, 11},{12, 0, 7, 11},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z26_CNG19[19][4] = {{0, 22, 2, 4},{0, 11, 11, 6},{0, 20, 21, 7},{0, 0, 24, 9},{0, 10, 4, 23},{0, 0, 19, 21},{0, 0, 22, 6},{0, 2, 12, 21},{0, 16, 18, 5},{0, 8, 13, 24},{0, 0, 25, 9},{0, 6, 2, 5},{0, 4, 7, 14},{0, 0, 21, 17},{0, 12, 23, 16},{0, 5, 16, 2},{0, 1, 14, 12},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z30_CNG19[19][4] = {{15, 6, 9, 8},{17, 26, 4, 23},{6, 16, 15, 12},{14, 11, 1, 10},{24, 8, 26, 13},{23, 2, 27, 6},{23, 22, 29, 6},{15, 26, 2, 1},{25, 11, 24, 6},{8, 9, 8, 22},{15, 5, 6, 24},{15, 25, 11, 17},{7, 3, 3, 20},{10, 27, 6, 2},{0, 13, 5, 25},{15, 6, 7, 22},{17, 0, 20, 9},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z8_CNG19[19][4] = {{2, 2, 2, 1},{5, 7, 7, 1},{2, 5, 1, 4},{7, 4, 7, 4},{4, 7, 5, 6},{2, 6, 5, 3},{3, 0, 5, 3},{5, 5, 1, 0},{6, 4, 7, 6},{7, 6, 7, 6},{1, 5, 6, 3},{3, 4, 1, 3},{7, 6, 1, 0},{6, 3, 5, 4},{3, 7, 5, 4},{7, 4, 3, 0},{7, 0, 5, 4},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z12_CNG19[19][4] = {{7, 4, 1, 0},{7, 4, 10, 3},{2, 1, 4, 0},{9, 0, 8, 11},{1, 0, 4, 7},{0, 7, 5, 9},{5, 7, 3, 8},{0, 10, 4, 0},{1, 7, 3, 5},{5, 6, 9, 3},{9, 1, 8, 5},{11, 3, 4, 8},{10, 6, 5, 4},{2, 6, 11, 0},{0, 7, 0, 7},{6, 4, 1, 3},{10, 0, 1, 9},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z20_CNG19[19][4] = {{13, 3, 8, 0},{15, 14, 7, 8},{3, 7, 0, 10},{9, 1, 0, 17},{0, 1, 18, 1},{19, 13, 7, 15},{15, 4, 2, 19},{2, 0, 0, 1},{15, 9, 11, 3},{4, 0, 6, 13},{13, 16, 15, 4},{18, 6, 3, 13},{10, 12, 1, 4},{13, 3, 4, 8},{16, 0, 6, 17},{9, 1, 10, 19},{12, 0, 16, 8},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z28_CNG19[19][4] = {{27, 1, 11, 5},{16, 17, 7, 18},{10, 11, 3, 25},{7, 18, 8, 5},{18, 7, 12, 17},{10, 17, 18, 2},{0, 21, 11, 16},{9, 3, 13, 6},{20, 10, 9, 15},{21, 9, 14, 17},{19, 23, 21, 7},{14, 9, 18, 13},{14, 6, 21, 12},{1, 26, 2, 18},{2, 3, 5, 15},{20, 19, 27, 2},{25, 0, 6, 18},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z36_CNG19[19][4] = {{31, 35, 6, 7},{18, 18, 23, 1},{8, 7, 4, 22},{6, 4, 25, 0},{3, 16, 27, 10},{4, 4, 22, 24},{29, 22, 2, 17},{0, 9, 27, 5},{8, 1, 0, 18},{0, 15, 3, 21},{7, 0, 2, 0},{17, 8, 13, 7},{0, 14, 0, 26},{23, 3, 0, 21},{0, 12, 17, 0},{1, 11, 20, 5},{9, 0, 18, 0},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z44_CNG19[19][4] = {{30, 33, 6, 9},{30, 5, 35, 6},{35, 8, 37, 5},{22, 30, 38, 15},{31, 4, 23, 7},{33, 24, 1, 34},{23, 38, 40, 3},{30, 6, 17, 18},{1, 35, 30, 26},{31, 33, 39, 37},{25, 26, 22, 5},{9, 22, 22, 9},{39, 37, 37, 29},{40, 1, 43, 39},{35, 9, 31, 11},{3, 38, 34, 33},{12, 0, 7, 33},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z52_CNG19[19][4] = {{0, 22, 28, 4},{0, 11, 37, 6},{0, 20, 21, 33},{0, 0, 24, 9},{0, 10, 4, 49},{0, 0, 45, 21},{0, 0, 48, 6},{0, 2, 38, 47},{0, 16, 18, 31},{0, 8, 39, 50},{0, 0, 51, 35},{0, 6, 28, 5},{0, 30, 33, 40},{0, 0, 47, 17},{0, 12, 23, 16},{0, 31, 42, 2},{0, 1, 14, 38},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z60_CNG19[19][4] = {{15, 36, 9, 8},{47, 56, 4, 23},{6, 16, 45, 42},{14, 41, 31, 40},{24, 8, 56, 43},{23, 32, 57, 6},{53, 52, 59, 36},{45, 56, 32, 1},{25, 11, 24, 36},{8, 9, 8, 22},{15, 35, 6, 24},{15, 25, 41, 47},{37, 33, 33, 20},{40, 27, 36, 32},{30, 43, 5, 55},{45, 36, 7, 52},{17, 0, 50, 39},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z16_CNG19[19][4] = {{10, 2, 10, 9},{5, 15, 15, 9},{2, 5, 9, 4},{15, 12, 15, 4},{4, 7, 5, 6},{10, 14, 13, 3},{11, 8, 5, 3},{5, 13, 1, 8},{14, 12, 15, 6},{15, 6, 7, 6},{9, 13, 14, 11},{3, 4, 1, 3},{7, 14, 1, 0},{14, 11, 5, 12},{3, 15, 13, 4},{15, 12, 11, 0},{15, 0, 5, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z24_CNG19[19][4] = {{19, 4, 13, 12},{19, 4, 10, 15},{2, 1, 16, 0},{9, 0, 20, 11},{13, 0, 16, 7},{0, 19, 17, 9},{5, 19, 3, 8},{0, 10, 16, 12},{13, 7, 15, 17},{17, 6, 9, 15},{21, 1, 8, 5},{23, 3, 16, 20},{10, 18, 5, 16},{2, 18, 11, 12},{12, 19, 0, 7},{18, 16, 13, 15},{10, 0, 13, 21},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z40_CNG19[19][4] = {{33, 23, 28, 20},{15, 14, 7, 8},{23, 27, 0, 30},{9, 21, 0, 37},{0, 1, 38, 21},{39, 13, 27, 15},{15, 4, 2, 39},{2, 0, 0, 1},{15, 9, 31, 23},{4, 20, 26, 13},{13, 36, 15, 4},{18, 26, 3, 13},{30, 32, 21, 4},{33, 3, 24, 28},{16, 20, 6, 37},{29, 21, 30, 39},{32, 0, 36, 28},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z56_CNG19[19][4] = {{55, 29, 39, 33},{16, 45, 35, 18},{38, 39, 31, 53},{35, 46, 8, 5},{18, 7, 12, 45},{10, 45, 18, 30},{0, 21, 39, 16},{37, 31, 41, 34},{48, 38, 9, 43},{21, 37, 14, 45},{47, 23, 21, 35},{14, 9, 46, 13},{14, 6, 21, 40},{29, 26, 30, 18},{30, 31, 5, 43},{48, 19, 55, 30},{25, 0, 34, 46},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z72_CNG19[19][4] = {{67, 35, 42, 43},{54, 18, 23, 1},{44, 7, 4, 22},{42, 40, 61, 36},{3, 16, 27, 10},{4, 4, 58, 60},{29, 58, 2, 53},{0, 45, 63, 41},{44, 37, 0, 18},{0, 15, 3, 57},{43, 0, 2, 36},{17, 8, 13, 43},{0, 14, 0, 26},{23, 3, 0, 21},{0, 12, 53, 0},{1, 47, 56, 41},{45, 0, 18, 36},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z88_CNG19[19][4] = {{30, 77, 50, 9},{30, 49, 35, 6},{79, 8, 37, 49},{66, 74, 38, 15},{31, 4, 23, 51},{77, 24, 1, 78},{67, 38, 40, 3},{74, 50, 61, 18},{1, 79, 30, 70},{75, 77, 39, 81},{25, 70, 22, 5},{53, 66, 22, 9},{83, 81, 37, 73},{40, 45, 43, 39},{79, 9, 75, 55},{47, 38, 34, 33},{12, 0, 7, 33},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z104_CNG19[19][4] = {{0, 22, 28, 4},{0, 11, 37, 6},{0, 20, 21, 33},{0, 0, 76, 9},{0, 10, 4, 49},{0, 0, 45, 21},{0, 0, 48, 6},{0, 2, 38, 47},{0, 16, 18, 83},{0, 60, 91, 50},{0, 0, 51, 87},{0, 6, 28, 5},{0, 30, 85, 92},{0, 0, 47, 69},{0, 64, 75, 16},{0, 31, 42, 2},{0, 1, 66, 38},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z120_CNG19[19][4] = {{15, 96, 69, 8},{107, 116, 4, 23},{6, 16, 105, 42},{14, 101, 31, 100},{84, 8, 116, 43},{83, 92, 117, 66},{53, 52, 59, 96},{105, 56, 92, 1},{85, 11, 24, 96},{8, 69, 68, 22},{75, 95, 6, 24},{15, 85, 101, 47},{97, 33, 33, 80},{100, 87, 96, 32},{90, 43, 5, 115},{105, 96, 67, 52},{17, 0, 110, 99},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z32_CNG19[19][4] = {{26, 2, 10, 25},{5, 15, 15, 25},{2, 21, 25, 20},{31, 28, 31, 20},{4, 7, 21, 22},{10, 30, 29, 3},{27, 8, 5, 19},{5, 13, 17, 8},{14, 28, 31, 22},{31, 6, 7, 22},{9, 13, 14, 27},{3, 4, 1, 19},{23, 14, 1, 16},{30, 27, 21, 12},{3, 31, 13, 20},{15, 28, 27, 16},{31, 0, 21, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z48_CNG19[19][4] = {{19, 28, 13, 36},{19, 28, 10, 39},{2, 25, 40, 0},{33, 0, 44, 35},{37, 0, 16, 7},{24, 43, 17, 9},{29, 43, 27, 8},{0, 34, 16, 36},{13, 7, 15, 17},{17, 6, 33, 39},{21, 25, 8, 5},{23, 3, 40, 20},{10, 18, 5, 16},{2, 18, 35, 12},{36, 43, 0, 31},{42, 16, 13, 39},{10, 0, 13, 21},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z80_CNG19[19][4] = {{73, 63, 68, 60},{15, 54, 7, 48},{23, 27, 0, 30},{49, 21, 40, 37},{0, 1, 38, 61},{39, 53, 67, 15},{15, 4, 42, 79},{2, 0, 40, 41},{55, 49, 71, 63},{4, 60, 26, 13},{53, 76, 55, 4},{58, 26, 43, 53},{30, 72, 61, 44},{33, 3, 24, 28},{16, 20, 6, 77},{29, 61, 70, 79},{32, 0, 36, 68},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z112_CNG19[19][4] = {{111, 29, 95, 89},{16, 45, 91, 18},{94, 39, 31, 53},{91, 46, 64, 5},{74, 7, 68, 45},{10, 45, 74, 30},{0, 21, 95, 16},{93, 87, 41, 34},{104, 94, 65, 43},{21, 93, 70, 101},{103, 79, 77, 35},{14, 9, 102, 69},{70, 6, 77, 96},{29, 82, 86, 74},{86, 31, 5, 99},{104, 75, 111, 30},{81, 0, 90, 46},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z144_CNG19[19][4] = {{67, 35, 114, 43},{54, 18, 23, 1},{44, 79, 76, 22},{42, 112, 133, 108},{75, 16, 99, 82},{4, 76, 58, 132},{29, 58, 74, 53},{0, 117, 63, 41},{116, 109, 0, 18},{72, 15, 3, 57},{115, 72, 74, 36},{89, 8, 85, 115},{0, 14, 0, 98},{95, 3, 72, 21},{72, 12, 125, 0},{73, 119, 56, 113},{117, 0, 90, 108},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z176_CNG19[19][4] = {{118, 77, 50, 97},{118, 49, 35, 94},{167, 96, 37, 49},{154, 162, 126, 103},{31, 92, 111, 139},{165, 112, 89, 166},{67, 126, 128, 91},{74, 50, 61, 106},{1, 167, 118, 70},{163, 77, 127, 169},{25, 158, 110, 93},{53, 66, 110, 9},{171, 81, 125, 73},{128, 133, 131, 39},{167, 9, 163, 143},{47, 126, 34, 121},{12, 0, 7, 121},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z208_CNG19[19][4] = {{0, 22, 132, 4},{0, 11, 37, 6},{0, 124, 21, 33},{0, 0, 180, 113},{0, 10, 4, 49},{0, 0, 149, 21},{0, 0, 48, 6},{0, 2, 38, 151},{0, 16, 122, 83},{0, 60, 195, 154},{0, 0, 155, 87},{0, 6, 28, 5},{0, 30, 85, 92},{0, 0, 47, 173},{0, 168, 179, 120},{0, 31, 42, 2},{0, 105, 66, 142},{0, 0, 0, 0},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z240_CNG19[19][4] = {{135, 96, 189, 128},{227, 236, 4, 23},{126, 136, 225, 162},{134, 221, 151, 220},{84, 128, 236, 43},{83, 92, 117, 186},{53, 172, 179, 96},{225, 56, 92, 1},{205, 11, 24, 216},{128, 189, 68, 22},{75, 95, 6, 24},{135, 85, 101, 167},{217, 153, 33, 200},{220, 87, 96, 32},{90, 163, 125, 235},{105, 216, 67, 172},{137, 0, 230, 219},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z64_CNG19[19][4] = {{58, 2, 42, 57},{5, 47, 47, 25},{34, 53, 57, 20},{31, 60, 63, 20},{36, 7, 53, 22},{10, 30, 29, 3},{59, 40, 37, 51},{37, 45, 49, 8},{46, 28, 31, 22},{63, 38, 39, 54},{9, 45, 14, 27},{3, 4, 33, 19},{23, 14, 33, 48},{62, 27, 53, 12},{35, 63, 13, 52},{47, 28, 59, 16},{31, 0, 53, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z96_CNG19[19][4] = {{19, 76, 13, 84},{19, 76, 58, 87},{50, 73, 40, 0},{81, 0, 44, 83},{85, 48, 64, 7},{24, 43, 65, 57},{29, 43, 75, 56},{0, 82, 64, 36},{13, 7, 63, 17},{17, 54, 33, 39},{69, 25, 8, 53},{23, 3, 88, 20},{10, 66, 53, 16},{50, 18, 35, 12},{84, 43, 48, 79},{42, 16, 13, 39},{58, 0, 13, 69},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z160_CNG19[19][4] = {{73, 143, 68, 60},{15, 134, 7, 48},{103, 27, 80, 30},{49, 101, 120, 37},{80, 1, 38, 61},{39, 133, 67, 15},{15, 4, 42, 79},{2, 80, 40, 121},{55, 129, 71, 143},{4, 140, 106, 93},{133, 76, 135, 4},{138, 106, 123, 53},{110, 72, 141, 44},{113, 83, 24, 28},{16, 100, 86, 77},{29, 141, 70, 159},{32, 0, 116, 68},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z224_CNG19[19][4] = {{223, 141, 207, 201},{16, 45, 203, 18},{94, 151, 31, 165},{91, 46, 176, 5},{74, 119, 180, 45},{10, 157, 186, 142},{0, 133, 95, 16},{205, 87, 153, 34},{216, 206, 177, 155},{21, 93, 70, 213},{215, 79, 77, 147},{14, 9, 214, 69},{70, 118, 77, 96},{141, 194, 198, 74},{198, 31, 117, 99},{104, 187, 223, 30},{81, 0, 90, 158},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z288_CNG19[19][4] = {{211, 179, 258, 187},{198, 162, 167, 145},{188, 223, 220, 166},{186, 256, 133, 108},{219, 160, 243, 82},{4, 76, 202, 132},{29, 202, 218, 197},{144, 117, 63, 41},{116, 109, 0, 162},{216, 15, 3, 57},{115, 72, 74, 36},{233, 152, 229, 115},{144, 158, 0, 242},{95, 147, 216, 165},{216, 156, 269, 0},{73, 119, 200, 113},{261, 0, 234, 108},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z352_CNG19[19][4] = {{294, 77, 226, 97},{118, 225, 35, 94},{167, 96, 213, 49},{330, 338, 302, 279},{207, 268, 111, 139},{165, 112, 265, 166},{243, 302, 128, 91},{250, 50, 237, 106},{1, 167, 294, 246},{339, 253, 127, 345},{201, 334, 110, 269},{53, 242, 286, 185},{347, 257, 125, 249},{304, 133, 131, 215},{167, 9, 163, 143},{47, 302, 210, 121},{188, 0, 7, 121},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z128_CNG19[19][4] = {{122, 2, 106, 121},{69, 111, 111, 89},{98, 117, 57, 84},{31, 124, 63, 20},{100, 71, 117, 22},{10, 94, 93, 3},{59, 104, 101, 115},{101, 45, 49, 8},{110, 92, 95, 86},{63, 102, 39, 118},{9, 109, 14, 91},{67, 4, 97, 83},{23, 14, 97, 112},{62, 27, 117, 76},{35, 127, 77, 116},{111, 28, 123, 16},{31, 0, 117, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z192_CNG19[19][4] = {{115, 76, 13, 84},{19, 76, 58, 87},{50, 73, 136, 0},{177, 96, 140, 83},{181, 144, 64, 7},{24, 139, 161, 153},{125, 139, 75, 56},{96, 178, 160, 132},{109, 103, 63, 113},{17, 150, 129, 39},{165, 25, 8, 149},{23, 99, 88, 20},{106, 162, 53, 112},{50, 114, 131, 108},{180, 139, 48, 79},{138, 112, 13, 39},{154, 0, 13, 165},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z320_CNG19[19][4] = {{73, 303, 68, 220},{15, 294, 7, 208},{103, 27, 80, 30},{49, 261, 280, 197},{240, 161, 38, 61},{39, 133, 227, 175},{15, 4, 202, 79},{162, 80, 200, 281},{215, 129, 71, 303},{164, 300, 106, 253},{133, 76, 295, 164},{298, 266, 283, 53},{110, 72, 301, 44},{113, 83, 184, 28},{16, 260, 246, 77},{189, 301, 230, 319},{32, 0, 276, 68},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z256_CNG19[19][4] = {{250, 2, 106, 121},{69, 239, 111, 89},{226, 117, 185, 84},{159, 124, 63, 20},{100, 71, 117, 150},{10, 222, 93, 131},{59, 104, 229, 243},{229, 173, 177, 136},{110, 220, 95, 86},{191, 102, 39, 246},{9, 109, 142, 219},{195, 132, 225, 211},{23, 142, 225, 240},{190, 155, 245, 76},{35, 255, 205, 244},{239, 28, 251, 144},{31, 0, 117, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; -static const uint16_t circShift_BG1_Z384_CNG19[19][4] = {{307, 76, 205, 276},{19, 76, 250, 87},{50, 73, 328, 0},{369, 288, 332, 275},{181, 144, 256, 199},{216, 331, 161, 153},{317, 331, 267, 56},{288, 178, 160, 132},{109, 295, 63, 305},{17, 342, 129, 231},{357, 217, 200, 341},{215, 99, 88, 212},{106, 354, 53, 304},{242, 114, 131, 300},{180, 331, 240, 271},{330, 112, 205, 39},{346, 0, 13, 357},{1, 0, 0, 1},{0, 0, 0, 0}}; - -// BG2 -// CNG3 -static const uint16_t circShift_BG2_Z2_CNG3[3][6] = {{0, 0, 0, 0, 0, 1},{1, 0, 1, 0, 1, 1},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG3[3][6] = {{2, 0, 1, 2, 0, 1},{1, 0, 2, 2, 2, 1},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG3[3][6] = {{2, 0, 0, 2, 2, 3},{3, 0, 3, 0, 1, 3},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 0, 2, 4, 0, 4},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG3[3][6] = {{2, 3, 1, 2, 3, 1},{4, 3, 2, 5, 2, 1},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG3[3][6] = {{0, 1, 6, 3, 0, 5},{1, 3, 6, 5, 0, 5},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG3[3][6] = {{6, 4, 0, 2, 2, 3},{7, 4, 7, 4, 1, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG3[3][6] = {{0, 2, 4, 7, 8, 7},{6, 0, 1, 7, 4, 2},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 5, 2, 4, 0, 4},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG3[3][6] = {{7, 6, 9, 7, 7, 2},{9, 4, 5, 7, 5, 5},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG3[3][6] = {{8, 9, 7, 2, 3, 1},{4, 9, 2, 5, 2, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG3[3][6] = {{7, 2, 12, 11, 11, 12},{9, 12, 11, 1, 7, 11},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG3[3][6] = {{7, 1, 13, 10, 7, 12},{1, 10, 6, 5, 0, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG3[3][6] = {{0, 6, 4, 10, 6, 4},{14, 5, 1, 12, 1, 9},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG3[3][6] = {{14, 4, 8, 2, 10, 11},{15, 12, 7, 12, 1, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG3[3][6] = {{0, 2, 13, 7, 8, 7},{6, 9, 10, 7, 13, 2},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 5, 12, 14, 0, 4},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG3[3][6] = {{18, 6, 20, 7, 7, 13},{9, 4, 16, 7, 16, 16},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG3[3][6] = {{20, 21, 7, 14, 3, 13},{4, 21, 2, 17, 2, 7},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG3[3][6] = {{20, 15, 12, 24, 11, 25},{22, 12, 11, 1, 7, 11},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG3[3][6] = {{21, 15, 27, 24, 7, 12},{1, 10, 6, 5, 14, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG3[3][6] = {{15, 6, 4, 25, 21, 4},{14, 5, 1, 27, 16, 24},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG3[3][6] = {{30, 4, 8, 18, 10, 27},{31, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG3[3][6] = {{18, 20, 13, 25, 8, 25},{24, 27, 10, 25, 31, 20},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 25, 32, 34, 20, 24},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG3[3][6] = {{18, 28, 42, 7, 29, 35},{31, 4, 16, 29, 16, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG3[3][6] = {{20, 45, 7, 14, 3, 37},{4, 21, 2, 17, 26, 31},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG3[3][6] = {{46, 41, 12, 50, 11, 25},{22, 38, 37, 27, 33, 37},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG3[3][6] = {{49, 43, 27, 52, 35, 40},{1, 38, 6, 5, 14, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG3[3][6] = {{15, 6, 4, 25, 21, 34},{44, 35, 1, 57, 46, 54},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG3[3][6] = {{30, 36, 8, 18, 42, 27},{63, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG3[3][6] = {{54, 56, 13, 61, 8, 25},{60, 63, 10, 25, 67, 56},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 74, 20, 64},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG3[3][6] = {{18, 72, 42, 51, 29, 79},{75, 48, 16, 73, 60, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG3[3][6] = {{20, 45, 7, 14, 3, 37},{52, 21, 50, 17, 74, 31},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG3[3][6] = {{98, 93, 64, 50, 11, 77},{22, 90, 89, 27, 85, 89},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG3[3][6] = {{49, 99, 27, 108, 35, 40},{1, 94, 6, 61, 70, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG3[3][6] = {{75, 66, 64, 25, 81, 34},{44, 95, 61, 57, 46, 114},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG3[3][6] = {{94, 100, 8, 18, 106, 91},{63, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG3[3][6] = {{54, 128, 13, 133, 80, 97},{132, 63, 10, 25, 139, 56},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 154, 20, 144},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG3[3][6] = {{18, 72, 42, 139, 117, 167},{163, 136, 104, 161, 148, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG3[3][6] = {{20, 45, 103, 110, 3, 37},{52, 21, 50, 17, 170, 31},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG3[3][6] = {{202, 197, 168, 50, 115, 181},{126, 194, 193, 27, 189, 193},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG3[3][6] = {{49, 211, 27, 108, 147, 40},{1, 94, 118, 61, 182, 12},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG3[3][6] = {{195, 66, 64, 25, 201, 154},{44, 95, 181, 57, 46, 114},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG3[3][6] = {{222, 228, 8, 18, 106, 219},{63, 156, 151, 28, 1, 151},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG3[3][6] = {{54, 128, 13, 133, 80, 97},{132, 63, 10, 25, 139, 56},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 154, 20, 144},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG3[3][6] = {{18, 72, 42, 139, 117, 167},{163, 136, 104, 161, 148, 38},{0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG3[3][6] = {{20, 45, 103, 110, 3, 37},{52, 21, 50, 17, 170, 31},{0, 0, 0, 0, 0, 0}}; -// CNG4 -static const uint16_t circShift_BG2_Z2_CNG4[4][20] = {{1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1},{0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1},{1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG4[4][20] = {{0, 1, 0, 2, 0, 1, 1, 1, 1, 2, 1, 0, 0, 2, 2, 1, 0, 0, 1, 0},{2, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2, 2, 0, 1, 1, 1, 0, 2, 1},{2, 2, 2, 0, 1, 0, 0, 1, 2, 1, 0, 2, 1, 0, 0, 2, 1, 0, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG4[4][20] = {{3, 2, 3, 3, 0, 3, 2, 0, 3, 2, 2, 2, 0, 3, 1, 0, 3, 3, 0, 1},{2, 2, 3, 3, 2, 0, 1, 2, 3, 3, 1, 0, 0, 1, 0, 2, 2, 0, 3, 1},{3, 2, 2, 1, 2, 1, 1, 2, 2, 0, 3, 2, 3, 0, 3, 2, 2, 2, 0, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{1, 0, 3, 3, 3, 3, 3, 2, 0, 4, 1, 0, 3, 4, 2, 3, 3, 4, 1, 2},{2, 2, 3, 4, 1, 4, 4, 3, 3, 2, 0, 2, 3, 3, 1, 2, 4, 3, 3, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG4[4][20] = {{0, 4, 3, 2, 0, 4, 4, 1, 4, 2, 4, 0, 3, 5, 5, 1, 0, 3, 1, 3},{2, 4, 3, 3, 0, 0, 1, 1, 2, 3, 3, 2, 5, 3, 4, 1, 1, 0, 5, 1},{5, 2, 5, 3, 4, 0, 3, 1, 5, 4, 0, 5, 4, 0, 0, 2, 4, 3, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG4[4][20] = {{4, 0, 4, 4, 5, 0, 6, 3, 2, 6, 6, 3, 1, 1, 0, 1, 2, 1, 0, 1},{2, 1, 0, 4, 2, 5, 6, 1, 5, 4, 2, 0, 5, 5, 4, 0, 6, 6, 0, 3},{3, 5, 4, 5, 2, 2, 1, 4, 1, 0, 4, 5, 4, 6, 6, 6, 4, 0, 1, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG4[4][20] = {{3, 6, 7, 3, 4, 7, 2, 4, 7, 6, 2, 2, 4, 3, 1, 4, 7, 7, 0, 1},{6, 6, 7, 7, 2, 4, 1, 2, 3, 3, 5, 4, 4, 5, 0, 6, 2, 4, 3, 5},{7, 6, 6, 5, 2, 1, 5, 2, 6, 0, 7, 6, 3, 4, 7, 2, 6, 2, 0, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG4[4][20] = {{6, 7, 6, 4, 8, 7, 2, 1, 5, 3, 7, 5, 0, 1, 6, 4, 1, 2, 6, 3},{6, 6, 5, 6, 7, 1, 4, 3, 7, 6, 5, 8, 6, 7, 2, 3, 7, 5, 1, 2},{6, 7, 5, 2, 7, 5, 6, 0, 2, 2, 7, 8, 2, 6, 3, 8, 1, 7, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{6, 5, 3, 3, 8, 8, 8, 7, 5, 9, 6, 0, 8, 9, 7, 3, 3, 4, 6, 2},{7, 7, 8, 9, 6, 4, 4, 3, 8, 7, 0, 2, 3, 8, 6, 2, 9, 8, 3, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG4[4][20] = {{9, 9, 1, 5, 8, 2, 7, 2, 0, 3, 9, 6, 6, 0, 5, 7, 2, 10, 6, 0},{1, 9, 0, 4, 9, 3, 8, 1, 0, 9, 2, 7, 5, 8, 9, 0, 7, 6, 2, 6},{6, 7, 4, 7, 0, 2, 8, 7, 7, 6, 6, 10, 7, 8, 7, 8, 8, 6, 5, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG4[4][20] = {{0, 10, 3, 8, 6, 10, 4, 1, 10, 2, 10, 0, 9, 5, 5, 1, 0, 9, 7, 3},{2, 10, 9, 3, 6, 6, 1, 7, 2, 9, 3, 8, 11, 9, 4, 7, 7, 0, 11, 7},{5, 8, 11, 9, 10, 0, 9, 7, 11, 4, 0, 5, 4, 0, 6, 2, 10, 9, 7, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG4[4][20] = {{4, 10, 5, 5, 12, 6, 1, 10, 0, 9, 1, 6, 7, 2, 1, 2, 1, 12, 11, 9},{1, 8, 12, 4, 8, 7, 9, 5, 1, 5, 4, 0, 4, 9, 11, 11, 4, 1, 7, 2},{0, 9, 10, 11, 10, 0, 10, 10, 0, 10, 7, 7, 10, 11, 12, 10, 9, 4, 10, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG4[4][20] = {{4, 7, 4, 4, 12, 7, 6, 10, 2, 13, 6, 10, 1, 1, 7, 1, 9, 8, 0, 8},{2, 1, 7, 4, 2, 12, 6, 1, 12, 4, 2, 7, 12, 5, 11, 7, 13, 13, 7, 3},{3, 12, 11, 12, 2, 2, 1, 11, 8, 7, 11, 12, 11, 13, 13, 13, 4, 0, 8, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG4[4][20] = {{14, 11, 4, 8, 8, 9, 12, 13, 5, 6, 7, 14, 1, 4, 10, 13, 12, 2, 3, 8},{5, 4, 2, 7, 1, 9, 2, 13, 4, 4, 9, 14, 2, 0, 0, 7, 11, 0, 7, 5},{0, 0, 12, 7, 0, 13, 6, 11, 6, 10, 1, 11, 1, 6, 10, 1, 0, 9, 0, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG4[4][20] = {{3, 14, 15, 3, 12, 7, 10, 12, 7, 14, 2, 2, 4, 3, 9, 12, 15, 15, 0, 1},{6, 14, 15, 15, 2, 4, 9, 10, 11, 11, 5, 12, 4, 5, 8, 6, 2, 12, 11, 5},{7, 6, 14, 5, 2, 9, 13, 2, 14, 8, 7, 6, 11, 4, 15, 10, 6, 2, 8, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG4[4][20] = {{6, 16, 15, 13, 17, 7, 2, 1, 14, 12, 16, 14, 9, 1, 6, 13, 1, 11, 6, 12},{6, 15, 14, 6, 16, 10, 13, 3, 7, 6, 5, 17, 6, 7, 11, 3, 16, 14, 1, 11},{15, 16, 5, 2, 16, 5, 6, 9, 2, 11, 7, 17, 2, 6, 3, 8, 1, 16, 12, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{16, 5, 13, 13, 18, 18, 8, 17, 15, 9, 6, 0, 8, 19, 17, 3, 13, 4, 16, 2},{17, 7, 8, 19, 6, 14, 4, 13, 18, 7, 10, 2, 13, 18, 6, 2, 19, 18, 3, 15},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG4[4][20] = {{20, 9, 12, 5, 19, 13, 18, 2, 0, 3, 20, 6, 17, 11, 16, 7, 2, 21, 6, 0},{1, 9, 11, 15, 9, 3, 8, 12, 0, 20, 2, 7, 5, 19, 20, 0, 7, 6, 2, 6},{17, 7, 4, 18, 0, 13, 19, 18, 18, 17, 17, 10, 7, 8, 18, 19, 19, 17, 16, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG4[4][20] = {{0, 22, 15, 20, 18, 10, 4, 13, 10, 14, 22, 12, 21, 5, 5, 1, 12, 21, 7, 3},{2, 22, 21, 15, 6, 18, 13, 7, 14, 9, 15, 8, 11, 9, 16, 7, 7, 12, 11, 7},{5, 8, 11, 9, 22, 12, 9, 19, 23, 16, 0, 17, 4, 12, 18, 2, 22, 9, 19, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG4[4][20] = {{17, 23, 18, 18, 25, 6, 14, 10, 0, 9, 14, 6, 7, 15, 1, 15, 1, 25, 11, 9},{1, 21, 25, 4, 21, 20, 9, 18, 14, 5, 4, 0, 17, 9, 11, 11, 17, 1, 7, 15},{13, 22, 23, 24, 10, 0, 10, 23, 13, 10, 20, 7, 23, 11, 25, 23, 9, 17, 23, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG4[4][20] = {{4, 7, 18, 4, 12, 7, 6, 24, 16, 13, 20, 24, 15, 1, 7, 1, 9, 22, 14, 8},{16, 15, 21, 4, 16, 26, 20, 15, 26, 4, 16, 21, 12, 5, 25, 7, 13, 13, 7, 17},{17, 12, 25, 26, 16, 2, 1, 25, 22, 7, 25, 26, 25, 13, 27, 27, 18, 14, 8, 25},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG4[4][20] = {{29, 26, 4, 8, 8, 9, 27, 28, 5, 21, 7, 29, 16, 4, 25, 28, 12, 17, 18, 23},{20, 19, 2, 7, 1, 24, 17, 13, 4, 19, 24, 14, 2, 15, 15, 22, 11, 15, 7, 5},{0, 15, 12, 7, 0, 28, 6, 11, 21, 10, 16, 26, 16, 21, 25, 16, 15, 9, 0, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG4[4][20] = {{19, 14, 31, 19, 28, 23, 26, 12, 23, 14, 2, 18, 4, 19, 25, 12, 31, 15, 0, 1},{22, 30, 15, 15, 2, 20, 9, 10, 11, 11, 5, 12, 4, 21, 8, 6, 2, 12, 11, 5},{7, 6, 14, 21, 18, 25, 29, 18, 14, 8, 7, 6, 11, 4, 31, 26, 6, 2, 24, 22},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG4[4][20] = {{6, 34, 33, 31, 17, 7, 2, 19, 32, 30, 34, 32, 27, 1, 24, 13, 1, 11, 6, 12},{24, 33, 14, 24, 34, 28, 31, 3, 7, 6, 5, 17, 6, 25, 29, 21, 34, 32, 1, 11},{15, 16, 23, 20, 34, 5, 6, 9, 20, 29, 7, 35, 2, 6, 21, 26, 1, 34, 30, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{16, 25, 33, 33, 18, 38, 28, 17, 35, 29, 6, 20, 8, 19, 37, 23, 13, 24, 36, 2},{37, 7, 8, 19, 6, 34, 24, 33, 38, 7, 30, 2, 13, 38, 6, 2, 19, 18, 23, 15},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG4[4][20] = {{42, 9, 34, 5, 41, 13, 40, 24, 22, 25, 20, 28, 17, 11, 38, 29, 24, 21, 28, 0},{23, 31, 11, 15, 31, 3, 8, 34, 0, 20, 24, 29, 5, 41, 20, 22, 7, 6, 24, 6},{39, 29, 4, 40, 22, 13, 41, 40, 18, 17, 17, 10, 29, 30, 40, 41, 19, 17, 38, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG4[4][20] = {{24, 22, 39, 20, 42, 10, 28, 13, 10, 38, 22, 36, 21, 29, 29, 25, 36, 45, 7, 3},{26, 22, 45, 15, 6, 42, 13, 31, 38, 9, 15, 8, 35, 33, 40, 7, 7, 36, 11, 7},{29, 8, 11, 33, 46, 12, 9, 19, 47, 16, 24, 17, 28, 12, 18, 26, 46, 9, 19, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG4[4][20] = {{43, 49, 18, 18, 25, 6, 40, 10, 0, 9, 14, 6, 7, 41, 1, 41, 1, 25, 37, 35},{27, 21, 51, 4, 47, 20, 35, 18, 14, 5, 30, 0, 17, 35, 11, 11, 17, 1, 7, 41},{13, 22, 49, 50, 36, 0, 10, 23, 13, 36, 46, 7, 23, 37, 25, 23, 35, 17, 23, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG4[4][20] = {{32, 35, 46, 4, 12, 35, 6, 24, 44, 41, 48, 52, 15, 29, 35, 1, 37, 50, 42, 8},{16, 43, 49, 32, 16, 26, 20, 43, 54, 32, 44, 21, 12, 33, 53, 7, 41, 13, 35, 45},{45, 40, 53, 54, 44, 30, 29, 25, 22, 7, 25, 54, 53, 13, 55, 27, 46, 42, 36, 25},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG4[4][20] = {{29, 56, 4, 38, 8, 39, 57, 58, 5, 21, 7, 59, 46, 4, 25, 58, 42, 47, 18, 53},{20, 49, 2, 37, 31, 24, 47, 13, 34, 19, 24, 14, 2, 15, 45, 52, 41, 45, 7, 35},{0, 45, 12, 37, 30, 28, 6, 11, 51, 10, 16, 56, 46, 21, 55, 46, 45, 9, 0, 50},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG4[4][20] = {{51, 14, 63, 51, 28, 23, 26, 12, 23, 46, 34, 50, 4, 19, 57, 12, 31, 47, 0, 1},{22, 30, 47, 47, 2, 20, 41, 42, 43, 11, 37, 44, 36, 21, 40, 38, 2, 44, 11, 37},{7, 38, 14, 21, 50, 57, 29, 18, 46, 8, 7, 38, 43, 36, 63, 26, 38, 34, 56, 54},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG4[4][20] = {{42, 70, 33, 67, 17, 7, 2, 19, 68, 30, 34, 32, 63, 37, 60, 49, 1, 47, 6, 48},{24, 69, 50, 24, 34, 28, 31, 3, 43, 42, 5, 17, 6, 25, 65, 57, 70, 32, 1, 47},{51, 16, 59, 56, 70, 41, 6, 9, 56, 29, 43, 71, 2, 42, 21, 26, 1, 70, 30, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{56, 65, 33, 73, 18, 78, 68, 17, 75, 69, 46, 20, 8, 19, 77, 63, 13, 24, 36, 2},{77, 7, 48, 19, 6, 74, 24, 33, 78, 7, 30, 42, 13, 78, 6, 2, 19, 58, 63, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG4[4][20] = {{86, 53, 34, 49, 85, 13, 40, 68, 22, 25, 64, 28, 17, 11, 38, 73, 24, 21, 72, 44},{67, 31, 11, 15, 31, 47, 52, 78, 44, 20, 24, 73, 49, 41, 64, 66, 7, 6, 68, 6},{83, 73, 4, 40, 22, 57, 85, 40, 62, 61, 61, 54, 29, 74, 84, 41, 19, 17, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG4[4][20] = {{72, 22, 39, 68, 90, 58, 76, 61, 10, 86, 70, 84, 69, 77, 77, 25, 84, 93, 7, 51},{74, 70, 93, 63, 6, 42, 61, 79, 86, 57, 15, 8, 83, 81, 88, 55, 55, 36, 11, 7},{29, 56, 11, 81, 46, 60, 57, 67, 95, 64, 72, 17, 28, 12, 18, 74, 94, 57, 67, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG4[4][20] = {{43, 101, 18, 70, 25, 6, 92, 10, 52, 9, 14, 6, 59, 93, 53, 93, 53, 77, 89, 87},{27, 73, 51, 4, 99, 20, 35, 18, 66, 57, 82, 0, 69, 87, 63, 63, 69, 53, 59, 93},{13, 22, 49, 102, 36, 52, 10, 23, 13, 88, 46, 59, 75, 89, 77, 75, 87, 69, 75, 63},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG4[4][20] = {{88, 35, 46, 4, 68, 35, 6, 80, 44, 41, 104, 108, 71, 29, 91, 1, 37, 106, 98, 8},{16, 43, 105, 88, 16, 26, 20, 43, 54, 88, 100, 21, 12, 89, 53, 63, 97, 69, 35, 101},{101, 40, 109, 110, 44, 86, 29, 81, 22, 63, 81, 110, 109, 69, 55, 83, 46, 42, 36, 81},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG4[4][20] = {{29, 56, 4, 38, 8, 39, 117, 118, 5, 81, 7, 59, 46, 64, 85, 58, 42, 47, 78, 53},{20, 49, 2, 97, 91, 84, 107, 13, 94, 19, 24, 14, 2, 15, 105, 112, 41, 45, 67, 95},{60, 105, 72, 37, 90, 88, 6, 11, 111, 10, 16, 116, 106, 21, 55, 106, 105, 69, 60, 110},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG4[4][20] = {{51, 14, 63, 51, 92, 87, 26, 76, 23, 46, 98, 114, 4, 19, 57, 12, 31, 111, 0, 1},{86, 94, 111, 47, 66, 20, 105, 42, 107, 11, 101, 44, 36, 85, 40, 38, 66, 44, 75, 101},{71, 102, 14, 85, 50, 57, 29, 82, 110, 8, 7, 38, 107, 36, 63, 26, 38, 34, 120, 118},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG4[4][20] = {{42, 70, 33, 139, 17, 79, 2, 91, 68, 30, 106, 32, 135, 37, 60, 121, 1, 119, 6, 48},{24, 69, 122, 96, 106, 28, 103, 75, 115, 42, 77, 89, 6, 25, 137, 129, 70, 32, 73, 47},{51, 88, 131, 128, 142, 41, 78, 81, 56, 101, 43, 71, 2, 114, 93, 26, 1, 142, 102, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{136, 65, 113, 73, 18, 158, 148, 17, 75, 69, 126, 20, 88, 19, 157, 63, 93, 24, 36, 2},{157, 87, 48, 99, 86, 154, 104, 33, 158, 87, 110, 122, 13, 78, 6, 82, 19, 138, 143, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG4[4][20] = {{86, 53, 122, 137, 173, 13, 128, 156, 110, 113, 64, 116, 105, 11, 126, 73, 112, 109, 160, 132},{67, 31, 11, 103, 31, 135, 52, 166, 132, 108, 24, 73, 137, 41, 152, 154, 7, 6, 156, 6},{83, 161, 4, 40, 22, 145, 173, 40, 150, 61, 149, 142, 29, 162, 172, 129, 19, 105, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG4[4][20] = {{72, 118, 39, 68, 186, 58, 76, 157, 106, 182, 70, 84, 165, 173, 77, 25, 84, 93, 103, 147},{74, 70, 93, 63, 6, 42, 61, 175, 86, 153, 111, 8, 179, 177, 184, 151, 151, 132, 107, 7},{29, 152, 11, 81, 46, 156, 153, 67, 95, 64, 168, 17, 124, 12, 18, 170, 190, 57, 163, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG4[4][20] = {{43, 101, 18, 174, 129, 110, 196, 10, 52, 113, 14, 110, 163, 197, 157, 197, 157, 181, 193, 191},{27, 177, 155, 108, 203, 124, 35, 122, 170, 161, 186, 0, 173, 191, 167, 167, 173, 157, 163, 197},{117, 22, 49, 102, 140, 52, 114, 23, 13, 88, 46, 163, 179, 193, 181, 179, 191, 173, 179, 167},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG4[4][20] = {{200, 147, 46, 116, 68, 35, 6, 80, 156, 153, 216, 108, 71, 29, 91, 1, 37, 106, 98, 120},{16, 43, 217, 200, 16, 138, 20, 43, 54, 88, 212, 21, 12, 201, 165, 175, 97, 181, 35, 101},{101, 152, 109, 110, 156, 86, 141, 81, 134, 63, 193, 110, 109, 69, 55, 83, 46, 154, 36, 81},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG4[4][20] = {{29, 176, 124, 38, 128, 39, 117, 238, 5, 81, 7, 179, 46, 184, 85, 178, 42, 167, 78, 53},{140, 169, 122, 217, 211, 84, 227, 13, 94, 19, 144, 14, 2, 135, 225, 112, 41, 45, 67, 215},{180, 225, 72, 157, 210, 88, 6, 11, 111, 130, 16, 116, 106, 141, 175, 106, 105, 189, 180, 230},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG4[4][20] = {{179, 142, 63, 51, 220, 87, 26, 76, 23, 46, 98, 242, 132, 147, 57, 140, 31, 239, 0, 129},{214, 94, 111, 175, 194, 20, 105, 42, 235, 139, 101, 44, 164, 85, 40, 38, 66, 172, 75, 229},{71, 230, 14, 213, 50, 185, 29, 210, 238, 8, 135, 166, 235, 36, 63, 154, 38, 34, 120, 118},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG4[4][20] = {{42, 70, 33, 139, 17, 79, 2, 91, 68, 30, 106, 32, 135, 37, 60, 121, 1, 119, 6, 48},{24, 69, 122, 96, 106, 28, 103, 75, 115, 42, 77, 89, 6, 25, 137, 129, 70, 32, 73, 47},{51, 88, 131, 128, 142, 41, 78, 81, 56, 101, 43, 71, 2, 114, 93, 26, 1, 142, 102, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{136, 65, 113, 73, 18, 158, 148, 17, 75, 69, 126, 20, 88, 19, 157, 63, 93, 24, 36, 2},{157, 87, 48, 99, 86, 154, 104, 33, 158, 87, 110, 122, 13, 78, 6, 82, 19, 138, 143, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG4[4][20] = {{86, 53, 122, 137, 173, 13, 128, 156, 110, 113, 64, 116, 105, 11, 126, 73, 112, 109, 160, 132},{67, 31, 11, 103, 31, 135, 52, 166, 132, 108, 24, 73, 137, 41, 152, 154, 7, 6, 156, 6},{83, 161, 4, 40, 22, 145, 173, 40, 150, 61, 149, 142, 29, 162, 172, 129, 19, 105, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG4[4][20] = {{72, 118, 39, 68, 186, 58, 76, 157, 106, 182, 70, 84, 165, 173, 77, 25, 84, 93, 103, 147},{74, 70, 93, 63, 6, 42, 61, 175, 86, 153, 111, 8, 179, 177, 184, 151, 151, 132, 107, 7},{29, 152, 11, 81, 46, 156, 153, 67, 95, 64, 168, 17, 124, 12, 18, 170, 190, 57, 163, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -// CNG5 -static const uint16_t circShift_BG2_Z2_CNG5[5][9] = {{1, 1, 1, 1, 1, 1, 0, 1, 1},{1, 1, 0, 0, 1, 0, 0, 1, 0},{1, 0, 0, 0, 1, 0, 0, 0, 1},{1, 1, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG5[5][9] = {{1, 2, 2, 1, 1, 0, 2, 1, 0},{0, 2, 2, 2, 1, 0, 2, 2, 1},{2, 1, 0, 2, 0, 0, 0, 1, 1},{1, 1, 1, 1, 1, 1, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG5[5][9] = {{3, 3, 3, 3, 3, 3, 2, 1, 3},{1, 1, 0, 2, 1, 2, 0, 3, 0},{1, 0, 2, 2, 3, 0, 2, 0, 1},{3, 1, 0, 2, 0, 2, 0, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{2, 2, 2, 2, 3, 4, 4, 0, 0},{1, 1, 4, 2, 2, 1, 4, 3, 1},{0, 0, 2, 1, 2, 3, 3, 2, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG5[5][9] = {{4, 5, 2, 1, 1, 3, 2, 1, 0},{0, 2, 2, 5, 4, 3, 5, 5, 4},{5, 4, 0, 5, 3, 3, 3, 1, 4},{4, 4, 4, 4, 1, 4, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG5[5][9] = {{2, 6, 1, 2, 1, 5, 6, 6, 1},{2, 3, 5, 1, 4, 4, 6, 6, 2},{2, 1, 5, 3, 5, 1, 3, 4, 3},{6, 0, 1, 0, 4, 6, 2, 6, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG5[5][9] = {{3, 3, 3, 3, 3, 3, 6, 5, 7},{5, 1, 4, 2, 1, 6, 4, 7, 0},{5, 0, 2, 6, 3, 0, 2, 0, 1},{7, 5, 0, 6, 0, 2, 0, 2, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG5[5][9] = {{7, 1, 1, 4, 8, 3, 3, 7, 6},{4, 5, 3, 1, 6, 0, 7, 1, 2},{6, 2, 8, 8, 4, 1, 2, 1, 5},{4, 6, 1, 2, 7, 8, 6, 7, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{7, 7, 7, 2, 8, 9, 4, 0, 5},{1, 6, 4, 2, 7, 1, 9, 3, 1},{5, 0, 2, 6, 7, 3, 8, 7, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG5[5][9] = {{5, 1, 3, 7, 0, 1, 2, 3, 7},{10, 3, 10, 3, 2, 4, 1, 5, 8},{0, 9, 2, 5, 8, 6, 7, 9, 5},{9, 1, 9, 6, 1, 0, 9, 2, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG5[5][9] = {{4, 11, 8, 1, 7, 3, 2, 7, 0},{0, 8, 8, 5, 10, 9, 11, 5, 10},{5, 10, 6, 11, 9, 3, 9, 7, 4},{10, 4, 10, 10, 7, 4, 6, 1, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG5[5][9] = {{4, 8, 0, 6, 0, 8, 5, 8, 5},{1, 8, 3, 1, 7, 5, 6, 3, 4},{10, 8, 9, 4, 0, 2, 12, 10, 11},{3, 12, 8, 4, 5, 7, 9, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG5[5][9] = {{2, 6, 1, 9, 8, 5, 6, 6, 8},{2, 10, 12, 1, 11, 4, 6, 6, 2},{2, 8, 12, 3, 12, 8, 10, 11, 3},{13, 0, 1, 0, 4, 13, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG5[5][9] = {{2, 8, 13, 3, 7, 5, 1, 11, 7},{13, 7, 4, 12, 7, 8, 8, 6, 4},{3, 13, 3, 2, 9, 10, 0, 10, 11},{8, 7, 6, 9, 12, 7, 8, 11, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG5[5][9] = {{11, 11, 11, 3, 3, 11, 14, 13, 7},{13, 9, 12, 2, 1, 14, 12, 15, 0},{13, 0, 2, 6, 3, 8, 2, 0, 9},{7, 5, 8, 14, 8, 2, 0, 10, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG5[5][9] = {{7, 10, 10, 4, 17, 12, 12, 16, 15},{4, 5, 12, 1, 15, 9, 7, 10, 2},{6, 11, 8, 8, 4, 10, 11, 10, 14},{13, 6, 10, 11, 7, 8, 6, 7, 16},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 12, 18, 19, 4, 0, 15},{11, 16, 4, 2, 17, 11, 9, 13, 11},{5, 0, 2, 6, 7, 3, 18, 7, 14},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG5[5][9] = {{16, 1, 3, 7, 11, 12, 2, 14, 18},{10, 3, 21, 3, 13, 4, 1, 16, 19},{11, 20, 2, 5, 8, 17, 18, 9, 5},{20, 1, 9, 17, 12, 11, 9, 13, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG5[5][9] = {{4, 11, 8, 1, 19, 15, 14, 19, 0},{12, 8, 20, 5, 22, 9, 23, 17, 10},{17, 22, 6, 11, 21, 15, 9, 7, 4},{10, 4, 10, 22, 19, 16, 6, 13, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG5[5][9] = {{4, 21, 13, 6, 13, 21, 5, 8, 18},{1, 8, 3, 1, 20, 5, 19, 16, 17},{23, 21, 9, 17, 0, 2, 12, 23, 24},{3, 25, 8, 4, 5, 20, 9, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG5[5][9] = {{2, 6, 15, 9, 8, 19, 20, 6, 22},{2, 10, 26, 1, 11, 18, 20, 6, 16},{16, 8, 26, 3, 12, 22, 10, 25, 17},{27, 0, 15, 0, 4, 13, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG5[5][9] = {{17, 8, 28, 18, 22, 20, 16, 26, 7},{28, 7, 4, 27, 22, 23, 23, 6, 19},{18, 28, 18, 17, 24, 25, 15, 10, 11},{8, 22, 21, 9, 12, 22, 8, 26, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG5[5][9] = {{11, 11, 11, 19, 19, 11, 30, 29, 7},{13, 25, 12, 2, 17, 14, 28, 15, 16},{29, 0, 18, 6, 3, 8, 18, 0, 9},{23, 21, 24, 30, 8, 18, 0, 26, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG5[5][9] = {{25, 10, 28, 4, 35, 12, 12, 34, 15},{4, 5, 30, 1, 15, 9, 7, 28, 20},{24, 29, 8, 26, 22, 28, 29, 28, 32},{13, 24, 28, 11, 25, 8, 6, 25, 34},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 32, 18, 39, 24, 20, 35},{11, 36, 4, 22, 17, 31, 29, 13, 11},{5, 20, 2, 26, 27, 23, 18, 7, 14},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG5[5][9] = {{16, 23, 3, 29, 11, 34, 2, 36, 40},{10, 25, 43, 3, 13, 26, 23, 38, 41},{11, 42, 24, 27, 8, 17, 18, 9, 5},{20, 23, 9, 39, 34, 33, 31, 13, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG5[5][9] = {{28, 11, 32, 1, 19, 39, 14, 19, 24},{36, 8, 44, 29, 22, 33, 23, 41, 10},{41, 22, 30, 35, 21, 39, 9, 7, 4},{34, 4, 10, 22, 19, 16, 6, 37, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG5[5][9] = {{30, 21, 39, 32, 39, 21, 5, 8, 18},{27, 8, 29, 1, 20, 31, 45, 16, 17},{49, 21, 35, 43, 0, 2, 38, 49, 50},{29, 51, 8, 30, 5, 20, 35, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG5[5][9] = {{2, 6, 43, 37, 36, 19, 48, 34, 50},{30, 38, 26, 1, 39, 46, 20, 6, 44},{16, 8, 54, 31, 40, 22, 38, 53, 17},{27, 0, 43, 28, 4, 41, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG5[5][9] = {{47, 38, 58, 48, 22, 50, 16, 26, 37},{58, 37, 34, 57, 52, 23, 53, 6, 19},{48, 28, 48, 47, 24, 55, 15, 10, 41},{8, 52, 51, 39, 42, 22, 38, 26, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG5[5][9] = {{11, 11, 11, 19, 51, 11, 62, 29, 7},{13, 57, 44, 2, 17, 14, 60, 15, 48},{61, 0, 18, 38, 3, 8, 50, 32, 9},{55, 53, 56, 30, 40, 50, 0, 58, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG5[5][9] = {{25, 46, 28, 4, 71, 48, 48, 70, 15},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 29, 44, 62, 58, 28, 65, 28, 32},{49, 24, 64, 47, 25, 8, 42, 61, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 32, 58, 79, 24, 20, 35},{51, 76, 4, 22, 57, 31, 29, 13, 51},{5, 20, 2, 26, 27, 63, 18, 7, 54},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG5[5][9] = {{16, 23, 3, 29, 11, 78, 46, 36, 84},{54, 25, 87, 3, 57, 70, 23, 38, 85},{11, 86, 24, 27, 8, 17, 62, 53, 5},{64, 23, 53, 39, 78, 77, 75, 57, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 62, 67, 24},{36, 8, 92, 29, 22, 81, 23, 41, 58},{89, 22, 78, 35, 21, 39, 9, 55, 52},{82, 52, 58, 70, 67, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG5[5][9] = {{82, 21, 39, 32, 91, 21, 57, 60, 70},{27, 60, 29, 53, 20, 31, 97, 68, 17},{101, 73, 35, 95, 52, 54, 38, 49, 50},{81, 51, 8, 82, 5, 72, 35, 57, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG5[5][9] = {{2, 62, 99, 37, 36, 75, 48, 90, 106},{30, 38, 26, 1, 95, 46, 20, 6, 44},{72, 8, 110, 31, 40, 22, 94, 109, 73},{83, 56, 99, 28, 4, 97, 2, 6, 64},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG5[5][9] = {{47, 38, 58, 48, 82, 50, 76, 26, 37},{118, 97, 94, 57, 112, 23, 53, 66, 19},{48, 88, 48, 47, 84, 55, 75, 70, 101},{68, 112, 51, 99, 42, 82, 98, 86, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG5[5][9] = {{75, 11, 11, 83, 115, 75, 126, 29, 71},{77, 57, 108, 2, 17, 14, 124, 15, 112},{61, 0, 82, 38, 3, 8, 114, 32, 9},{119, 117, 56, 94, 104, 114, 64, 122, 84},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG5[5][9] = {{97, 46, 28, 76, 143, 48, 120, 142, 87},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 101, 116, 62, 130, 28, 65, 100, 104},{49, 96, 64, 47, 97, 8, 42, 133, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{97, 17, 7, 112, 138, 79, 24, 100, 35},{51, 156, 4, 102, 57, 111, 109, 13, 51},{85, 20, 2, 26, 27, 143, 18, 7, 134},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG5[5][9] = {{104, 111, 91, 29, 11, 78, 134, 36, 84},{142, 25, 175, 91, 145, 158, 23, 38, 173},{99, 174, 24, 27, 8, 17, 62, 53, 93},{64, 23, 141, 127, 166, 165, 163, 145, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 158, 67, 120},{132, 104, 92, 125, 118, 177, 23, 137, 154},{185, 22, 174, 35, 21, 135, 9, 55, 52},{178, 52, 154, 166, 163, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG5[5][9] = {{186, 125, 39, 32, 91, 125, 57, 164, 70},{27, 60, 29, 53, 20, 31, 201, 172, 17},{205, 177, 35, 95, 52, 54, 142, 49, 50},{81, 51, 8, 186, 109, 176, 35, 161, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG5[5][9] = {{2, 174, 99, 37, 36, 75, 48, 90, 106},{30, 150, 138, 113, 95, 158, 132, 6, 44},{184, 8, 110, 143, 40, 134, 206, 221, 185},{83, 56, 99, 140, 116, 97, 2, 6, 176},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG5[5][9] = {{167, 38, 178, 48, 82, 170, 196, 146, 37},{238, 217, 214, 57, 232, 23, 173, 66, 139},{48, 208, 168, 167, 204, 175, 195, 190, 221},{68, 232, 51, 219, 162, 202, 218, 86, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG5[5][9] = {{203, 11, 11, 83, 115, 203, 254, 29, 71},{205, 185, 236, 2, 145, 142, 124, 143, 240},{61, 0, 210, 38, 3, 8, 114, 160, 9},{247, 117, 56, 222, 232, 242, 64, 122, 84},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG5[5][9] = {{97, 46, 28, 76, 143, 48, 120, 142, 87},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 101, 116, 62, 130, 28, 65, 100, 104},{49, 96, 64, 47, 97, 8, 42, 133, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{97, 17, 7, 112, 138, 79, 24, 100, 35},{51, 156, 4, 102, 57, 111, 109, 13, 51},{85, 20, 2, 26, 27, 143, 18, 7, 134},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG5[5][9] = {{104, 111, 91, 29, 11, 78, 134, 36, 84},{142, 25, 175, 91, 145, 158, 23, 38, 173},{99, 174, 24, 27, 8, 17, 62, 53, 93},{64, 23, 141, 127, 166, 165, 163, 145, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 158, 67, 120},{132, 104, 92, 125, 118, 177, 23, 137, 154},{185, 22, 174, 35, 21, 135, 9, 55, 52},{178, 52, 154, 166, 163, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -// CNG6 -static const uint16_t circShift_BG2_Z2_CNG6[6][3] = {{1, 1, 1},{1, 0, 1},{0, 1, 0},{1, 0, 1},{1, 0, 0},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG6[6][3] = {{1, 0, 2},{2, 2, 0},{1, 1, 1},{2, 1, 0},{0, 1, 2},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG6[6][3] = {{3, 3, 1},{1, 0, 3},{2, 1, 0},{3, 0, 3},{3, 2, 0},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG6[6][3] = {{0, 0, 0},{1, 4, 0},{2, 4, 3},{1, 0, 1},{4, 3, 3},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG6[6][3] = {{4, 3, 2},{2, 2, 0},{1, 4, 4},{2, 1, 0},{0, 4, 5},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG6[6][3] = {{3, 4, 5},{5, 6, 6},{2, 3, 0},{2, 5, 3},{4, 6, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG6[6][3] = {{7, 3, 1},{1, 4, 3},{2, 5, 4},{7, 4, 3},{7, 6, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG6[6][3] = {{4, 1, 7},{5, 6, 0},{3, 8, 8},{2, 7, 0},{8, 4, 2},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG6[6][3] = {{0, 0, 0},{1, 4, 5},{2, 9, 8},{1, 5, 6},{4, 8, 8},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG6[6][3] = {{2, 3, 4},{7, 0, 4},{2, 10, 2},{4, 1, 3},{5, 7, 0},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG6[6][3] = {{10, 9, 8},{8, 8, 6},{1, 4, 4},{8, 1, 6},{0, 4, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG6[6][3] = {{6, 7, 7},{10, 8, 0},{10, 3, 0},{2, 12, 3},{10, 12, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG6[6][3] = {{3, 11, 5},{12, 13, 13},{2, 3, 7},{9, 12, 10},{11, 13, 13},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG6[6][3] = {{1, 2, 11},{11, 12, 6},{4, 7, 12},{13, 4, 7},{12, 11, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG6[6][3] = {{7, 11, 1},{9, 4, 3},{2, 13, 12},{15, 12, 3},{7, 14, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG6[6][3] = {{4, 1, 7},{14, 15, 9},{12, 17, 17},{11, 7, 0},{17, 13, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG6[6][3] = {{0, 0, 0},{11, 4, 5},{2, 19, 8},{1, 5, 16},{4, 8, 18},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG6[6][3] = {{13, 3, 4},{18, 0, 15},{13, 10, 2},{15, 1, 3},{16, 7, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG6[6][3] = {{10, 9, 8},{20, 20, 18},{1, 4, 16},{8, 1, 6},{0, 16, 23},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG6[6][3] = {{6, 7, 7},{23, 8, 0},{10, 16, 13},{2, 12, 3},{10, 12, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG6[6][3] = {{17, 11, 19},{26, 27, 13},{2, 3, 21},{23, 26, 10},{25, 13, 13},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG6[6][3] = {{1, 17, 26},{11, 12, 6},{19, 22, 27},{28, 4, 22},{27, 26, 4},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG6[6][3] = {{7, 27, 1},{9, 4, 19},{2, 13, 12},{31, 28, 3},{7, 30, 20},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG6[6][3] = {{4, 1, 25},{32, 15, 27},{12, 35, 35},{29, 25, 0},{35, 31, 29},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG6[6][3] = {{0, 0, 0},{11, 4, 5},{22, 19, 28},{21, 5, 16},{24, 28, 38},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG6[6][3] = {{35, 3, 4},{40, 22, 37},{35, 10, 24},{15, 23, 3},{16, 29, 11},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG6[6][3] = {{10, 33, 32},{44, 44, 42},{25, 4, 16},{32, 1, 6},{0, 40, 47},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG6[6][3] = {{32, 7, 7},{49, 34, 26},{36, 42, 39},{28, 12, 3},{10, 12, 6},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG6[6][3] = {{17, 11, 47},{26, 55, 13},{2, 31, 49},{51, 54, 38},{25, 41, 13},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG6[6][3] = {{1, 17, 26},{41, 12, 6},{49, 52, 27},{28, 4, 52},{27, 56, 34},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG6[6][3] = {{39, 27, 1},{41, 36, 19},{2, 45, 12},{31, 28, 3},{39, 30, 52},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG6[6][3] = {{40, 37, 25},{68, 15, 63},{12, 35, 35},{65, 61, 36},{71, 67, 65},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG6[6][3] = {{0, 0, 0},{51, 44, 45},{62, 19, 68},{61, 45, 16},{64, 68, 78},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG6[6][3] = {{79, 47, 48},{84, 66, 37},{35, 10, 24},{15, 67, 47},{60, 29, 55},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG6[6][3] = {{10, 33, 80},{44, 92, 90},{25, 4, 16},{80, 49, 6},{48, 88, 47},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG6[6][3] = {{32, 7, 59},{49, 34, 78},{36, 94, 39},{28, 64, 3},{62, 12, 58},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG6[6][3] = {{73, 11, 103},{26, 55, 13},{58, 31, 105},{107, 110, 38},{81, 97, 69},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG6[6][3] = {{1, 17, 86},{41, 72, 66},{49, 52, 87},{88, 4, 52},{87, 56, 34},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG6[6][3] = {{103, 27, 1},{41, 100, 19},{66, 45, 12},{31, 28, 3},{103, 30, 116},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG6[6][3] = {{40, 109, 97},{140, 87, 135},{84, 107, 35},{137, 133, 108},{71, 139, 65},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG6[6][3] = {{0, 0, 0},{131, 124, 45},{142, 99, 148},{141, 45, 96},{64, 148, 78},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG6[6][3] = {{79, 47, 48},{84, 154, 125},{35, 10, 24},{103, 155, 47},{60, 29, 55},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG6[6][3] = {{10, 129, 80},{44, 92, 186},{121, 100, 16},{80, 49, 102},{48, 184, 143},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG6[6][3] = {{136, 7, 163},{49, 34, 78},{36, 198, 143},{132, 168, 107},{62, 12, 58},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG6[6][3] = {{185, 123, 103},{138, 55, 13},{170, 31, 105},{219, 222, 150},{193, 209, 181},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG6[6][3] = {{121, 137, 86},{41, 72, 186},{169, 172, 87},{88, 124, 172},{207, 56, 154},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG6[6][3] = {{231, 155, 129},{41, 228, 147},{194, 45, 140},{159, 28, 3},{103, 158, 116},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG6[6][3] = {{40, 109, 97},{140, 87, 135},{84, 107, 35},{137, 133, 108},{71, 139, 65},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG6[6][3] = {{0, 0, 0},{131, 124, 45},{142, 99, 148},{141, 45, 96},{64, 148, 78},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG6[6][3] = {{79, 47, 48},{84, 154, 125},{35, 10, 24},{103, 155, 47},{60, 29, 55},{0, 0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG6[6][3] = {{10, 129, 80},{44, 92, 186},{121, 100, 16},{80, 49, 102},{48, 184, 143},{0, 0, 0}}; -// CNG8 -static const uint16_t circShift_BG2_Z2_CNG8[8][2] = {{1, 1},{1, 0},{0, 0},{0, 0},{1, 0},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG8[8][2] = {{0, 1},{1, 0},{1, 0},{0, 2},{2, 0},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG8[8][2] = {{1, 1},{1, 2},{0, 0},{2, 0},{1, 0},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG8[8][2] = {{0, 0},{0, 4},{0, 4},{0, 4},{0, 3},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG8[8][2] = {{0, 1},{1, 0},{4, 3},{0, 2},{5, 0},{4, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG8[8][2] = {{2, 5},{5, 5},{2, 4},{6, 2},{4, 0},{1, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG8[8][2] = {{1, 1},{5, 2},{4, 4},{2, 4},{5, 0},{5, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG8[8][2] = {{3, 5},{8, 7},{8, 2},{8, 2},{7, 3},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG8[8][2] = {{0, 0},{0, 4},{0, 9},{0, 9},{0, 8},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG8[8][2] = {{2, 10},{0, 3},{3, 8},{3, 5},{7, 10},{2, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG8[8][2] = {{6, 1},{1, 6},{10, 9},{6, 2},{11, 6},{4, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG8[8][2] = {{0, 9},{6, 7},{7, 8},{9, 1},{1, 2},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG8[8][2] = {{2, 12},{12, 5},{9, 4},{13, 9},{11, 7},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG8[8][2] = {{10, 14},{11, 1},{11, 3},{6, 8},{8, 5},{7, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG8[8][2] = {{9, 1},{5, 2},{12, 12},{10, 4},{13, 0},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG8[8][2] = {{3, 5},{8, 16},{17, 2},{17, 2},{7, 3},{1, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG8[8][2] = {{0, 0},{0, 14},{0, 19},{0, 9},{0, 8},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG8[8][2] = {{2, 10},{11, 14},{14, 19},{3, 16},{18, 10},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG8[8][2] = {{6, 1},{1, 18},{22, 21},{18, 14},{23, 18},{4, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG8[8][2] = {{13, 22},{19, 7},{20, 21},{9, 1},{14, 2},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG8[8][2] = {{16, 12},{26, 19},{23, 18},{13, 23},{11, 7},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG8[8][2] = {{25, 14},{11, 1},{11, 3},{21, 23},{23, 5},{22, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG8[8][2] = {{9, 17},{21, 18},{12, 12},{26, 20},{29, 16},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG8[8][2] = {{3, 23},{26, 34},{17, 20},{35, 2},{7, 3},{19, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG8[8][2] = {{0, 20},{0, 14},{0, 19},{0, 9},{0, 28},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG8[8][2] = {{24, 10},{11, 36},{14, 19},{3, 38},{40, 10},{35, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG8[8][2] = {{30, 25},{1, 18},{22, 21},{18, 14},{23, 18},{28, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG8[8][2] = {{39, 22},{19, 7},{20, 47},{9, 27},{40, 28},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG8[8][2] = {{16, 40},{54, 19},{23, 46},{13, 23},{39, 35},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG8[8][2] = {{25, 14},{11, 31},{11, 3},{21, 53},{23, 35},{52, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG8[8][2] = {{9, 17},{53, 50},{12, 44},{26, 52},{61, 48},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG8[8][2] = {{3, 23},{26, 34},{53, 20},{35, 38},{43, 39},{55, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG8[8][2] = {{0, 20},{0, 14},{0, 19},{0, 9},{0, 28},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG8[8][2] = {{68, 10},{55, 80},{14, 19},{3, 82},{40, 54},{35, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG8[8][2] = {{78, 25},{1, 18},{70, 21},{66, 14},{71, 18},{76, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG8[8][2] = {{39, 22},{19, 59},{72, 47},{61, 79},{92, 28},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG8[8][2] = {{72, 40},{110, 19},{23, 46},{69, 79},{95, 91},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG8[8][2] = {{25, 74},{11, 31},{71, 3},{21, 53},{23, 35},{112, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG8[8][2] = {{9, 81},{117, 114},{76, 44},{26, 52},{61, 112},{77, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG8[8][2] = {{3, 95},{26, 106},{53, 92},{35, 110},{115, 111},{127, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG8[8][2] = {{0, 20},{0, 94},{0, 99},{0, 9},{0, 108},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG8[8][2] = {{156, 98},{143, 168},{14, 107},{3, 82},{40, 142},{123, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG8[8][2] = {{174, 25},{97, 114},{166, 117},{66, 110},{71, 114},{172, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG8[8][2] = {{143, 126},{19, 163},{176, 47},{165, 183},{196, 132},{13, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG8[8][2] = {{72, 152},{110, 131},{23, 46},{181, 191},{95, 91},{8, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG8[8][2] = {{145, 74},{131, 31},{71, 3},{21, 53},{23, 155},{112, 0},{1, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG8[8][2] = {{9, 81},{117, 114},{204, 44},{26, 52},{189, 240},{205, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG8[8][2] = {{3, 95},{26, 106},{53, 92},{35, 110},{115, 111},{127, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG8[8][2] = {{0, 20},{0, 94},{0, 99},{0, 9},{0, 108},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG8[8][2] = {{156, 98},{143, 168},{14, 107},{3, 82},{40, 142},{123, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG8[8][2] = {{174, 25},{97, 114},{166, 117},{66, 110},{71, 114},{172, 1},{0, 0},{0, 0}}; -// CNG10 -static const uint16_t circShift_BG2_Z2_CNG10[10][2] = {{1, 0},{0, 0},{1, 0},{1, 0},{0, 1},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z3_CNG10[10][2] = {{0, 1},{0, 1},{0, 2},{2, 0},{1, 0},{1, 1},{2, 1},{0, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z4_CNG10[10][2] = {{3, 0},{2, 2},{1, 2},{1, 0},{2, 1},{0, 2},{0, 2},{0, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z5_CNG10[10][2] = {{2, 3},{4, 0},{0, 2},{0, 1},{3, 2},{0, 2},{0, 3},{0, 1},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z6_CNG10[10][2] = {{3, 4},{0, 1},{0, 5},{2, 0},{1, 3},{1, 4},{5, 4},{3, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z7_CNG10[10][2] = {{4, 3},{2, 6},{3, 1},{2, 5},{3, 5},{4, 5},{1, 2},{3, 0},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z8_CNG10[10][2] = {{7, 0},{6, 2},{5, 6},{5, 0},{2, 1},{4, 6},{0, 2},{4, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z9_CNG10[10][2] = {{1, 3},{4, 4},{5, 4},{3, 4},{3, 1},{8, 4},{6, 2},{5, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z10_CNG10[10][2] = {{7, 8},{4, 5},{0, 2},{0, 6},{8, 2},{0, 7},{0, 3},{5, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z11_CNG10[10][2] = {{6, 9},{10, 9},{8, 9},{1, 6},{0, 6},{4, 1},{6, 6},{1, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z12_CNG10[10][2] = {{3, 4},{0, 7},{0, 5},{8, 0},{7, 3},{7, 10},{5, 4},{3, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z13_CNG10[10][2] = {{5, 10},{1, 9},{3, 5},{11, 7},{3, 8},{4, 3},{1, 9},{11, 4},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z14_CNG10[10][2] = {{11, 3},{2, 6},{3, 8},{2, 12},{3, 12},{4, 12},{1, 2},{3, 7},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z15_CNG10[10][2] = {{7, 14},{9, 6},{3, 5},{12, 5},{6, 9},{8, 4},{9, 13},{2, 0},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z16_CNG10[10][2] = {{7, 8},{6, 10},{13, 14},{13, 8},{2, 1},{12, 6},{0, 2},{12, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z18_CNG10[10][2] = {{1, 12},{4, 13},{14, 4},{12, 4},{12, 1},{8, 13},{15, 2},{14, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z20_CNG10[10][2] = {{17, 18},{4, 15},{0, 2},{0, 6},{8, 12},{0, 17},{0, 13},{15, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z22_CNG10[10][2] = {{17, 9},{21, 20},{19, 20},{1, 17},{11, 17},{15, 1},{17, 17},{1, 17},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z24_CNG10[10][2] = {{3, 16},{12, 7},{0, 17},{20, 0},{7, 3},{19, 22},{17, 4},{3, 18},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z26_CNG10[10][2] = {{18, 10},{1, 22},{3, 18},{24, 7},{3, 21},{17, 3},{14, 9},{24, 4},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z28_CNG10[10][2] = {{25, 17},{16, 6},{3, 8},{16, 12},{3, 12},{4, 26},{1, 16},{3, 21},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z30_CNG10[10][2] = {{22, 29},{24, 21},{3, 5},{27, 20},{6, 9},{23, 19},{9, 13},{17, 15},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z32_CNG10[10][2] = {{7, 8},{6, 26},{29, 30},{29, 8},{2, 17},{28, 22},{0, 18},{28, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z36_CNG10[10][2] = {{19, 12},{22, 13},{32, 22},{30, 4},{12, 1},{26, 13},{33, 20},{14, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z40_CNG10[10][2] = {{17, 38},{4, 15},{0, 22},{0, 26},{8, 12},{0, 17},{0, 13},{15, 6},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z44_CNG10[10][2] = {{17, 9},{21, 42},{19, 42},{1, 39},{11, 17},{37, 1},{39, 17},{1, 17},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z48_CNG10[10][2] = {{27, 40},{36, 31},{0, 17},{44, 24},{31, 27},{43, 22},{41, 28},{3, 42},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z52_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{50, 7},{29, 47},{17, 3},{14, 35},{24, 4},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z56_CNG10[10][2] = {{53, 17},{44, 6},{3, 36},{44, 12},{3, 12},{32, 54},{29, 44},{31, 21},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z60_CNG10[10][2] = {{22, 59},{54, 51},{3, 35},{27, 50},{36, 39},{23, 19},{9, 43},{47, 15},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z64_CNG10[10][2] = {{39, 8},{38, 58},{61, 30},{61, 40},{34, 17},{28, 54},{32, 18},{60, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z72_CNG10[10][2] = {{19, 48},{22, 49},{32, 22},{66, 4},{12, 1},{26, 49},{69, 56},{50, 7},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z80_CNG10[10][2] = {{57, 38},{44, 15},{0, 22},{0, 66},{8, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z88_CNG10[10][2] = {{17, 53},{65, 86},{63, 86},{1, 39},{55, 17},{37, 1},{83, 17},{45, 17},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z96_CNG10[10][2] = {{27, 40},{36, 79},{48, 17},{92, 72},{31, 27},{91, 22},{89, 28},{3, 90},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z104_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{102, 7},{81, 99},{17, 3},{14, 87},{76, 56},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z112_CNG10[10][2] = {{53, 73},{44, 6},{3, 36},{44, 12},{3, 12},{88, 110},{29, 44},{31, 21},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z120_CNG10[10][2] = {{22, 119},{54, 51},{63, 95},{27, 110},{96, 39},{23, 79},{9, 43},{47, 75},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z128_CNG10[10][2] = {{39, 8},{38, 58},{125, 30},{125, 104},{98, 81},{28, 54},{96, 18},{124, 0},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z144_CNG10[10][2] = {{19, 120},{94, 121},{104, 22},{66, 4},{84, 73},{98, 49},{69, 128},{50, 79},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z160_CNG10[10][2] = {{137, 38},{124, 15},{0, 102},{0, 146},{88, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z176_CNG10[10][2] = {{17, 53},{65, 174},{63, 174},{1, 127},{55, 17},{37, 89},{171, 17},{133, 105},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z192_CNG10[10][2] = {{27, 136},{36, 175},{48, 113},{92, 72},{31, 123},{187, 118},{185, 28},{3, 186},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z208_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{102, 111},{185, 203},{17, 3},{14, 191},{180, 160},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z224_CNG10[10][2] = {{53, 185},{156, 6},{115, 36},{156, 124},{115, 124},{200, 110},{29, 156},{31, 133},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z240_CNG10[10][2] = {{142, 239},{174, 171},{183, 95},{27, 110},{96, 159},{23, 199},{9, 43},{167, 75},{0, 1},{0, 0}}; -static const uint16_t circShift_BG2_Z256_CNG10[10][2] = {{167, 8},{166, 58},{253, 158},{125, 104},{226, 209},{156, 54},{224, 18},{252, 128},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z288_CNG10[10][2] = {{19, 120},{94, 121},{104, 22},{66, 4},{84, 73},{98, 49},{69, 128},{50, 79},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z320_CNG10[10][2] = {{137, 38},{124, 15},{0, 102},{0, 146},{88, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z352_CNG10[10][2] = {{17, 53},{65, 174},{63, 174},{1, 127},{55, 17},{37, 89},{171, 17},{133, 105},{0, 0},{0, 0}}; -static const uint16_t circShift_BG2_Z384_CNG10[10][2] = {{27, 136},{36, 175},{48, 113},{92, 72},{31, 123},{187, 118},{185, 28},{3, 186},{0, 0},{0, 0}}; - -// Startaddressses in the BN buffer of the different CN groups -// BG1 -// Group of CNs with 3 BNs (CNG3) / only this group is independent of Z -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG3[3][1] = {{111360},{100224},{0}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG3[3][1] = {{52224},{47616},{0}}; -// R89 -static const uint32_t startAddrBnProcBuf_BG1_R89_CNG3[3][1] = {{29952},{28032},{0}}; - -// Group of CNs with 4 BNs (CNG4) -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG4[4][5] = {{105984, 107904, 120192, 120576, 109440},{40704, 74496, 43008, 47232, 43008},{41856, 19200, 61440, 23424, 92544},{0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG4[4][5] = {{0, 0, 0, 0, 0},{0, 1, 1, 0, 0},{1, 0, 3, 0, 1},{23, 33, 36, 38, 41}}; - -// Group of CNs with 5 BNs (CNG5) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG5[5][18] = {{116736, 105216, 105600, 117504, 117888, 106368, 118272, 106752, 118656, 107136, 119040, 107520, 119424, 119808, 108288, 108672, 109056, 120960},{87936, 30336, 39552, 31872, 46848, 58368, 89472, 87936, 89472, 33408, 89472, 41856, 61440, 30336, 73344, 74496, 61440, 92544},{72192, 87936, 86400, 46464, 31872, 97536, 73344, 89472, 59904, 61440, 31872, 91008, 33408, 91008, 91008, 31872, 98688, 33408},{58368, 97152, 56832, 30336, 73344, 21888, 21888, 22656, 22656, 74496, 59904, 91008, 97920, 92544, 33408, 98304, 23424, 92544},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG5[5][18] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{2, 0, 0, 0, 0, 1, 1, 0, 2, 0, 0, 0, 1, 1, 0, 0, 2, 0},{1, 1, 0, 0, 3, 0, 1, 3, 1, 0, 2, 2, 2, 1, 0, 1, 0, 1},{3, 0, 1, 2, 2, 1, 0, 1, 0, 2, 3, 3, 0, 2, 3, 0, 1, 3},{18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 40}}; - -// Group of CNs with 6 BNs (CNG6) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG6[6][8] = {{114432, 103680, 115584, 104064, 115968, 116352, 104832, 117120},{68736, 69888, 55296, 86400, 104448, 71040, 17280, 72192},{83328, 56832, 58368, 71040, 84864, 28800, 59904, 46080},{40704, 41856, 56832, 96768, 40704, 58368, 43008, 59904},{18816, 84864, 71040, 30336, 86400, 86400, 72192, 87936},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG6[6][8] = {{0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 1, 2, 0, 0, 0, 0},{0, 0, 2, 1, 0, 1, 2, 0},{2, 2, 3, 0, 1, 0, 2, 0},{0, 3, 2, 3, 1, 3, 2, 3},{9, 12, 13, 14, 15, 16, 17, 20}}; - -// Group of CNs with 7 BNs (CNG7) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG7[7][5] = {{112512, 102144, 114048, 114816, 115200},{100992, 28800, 102912, 84864, 103296},{45312, 45696, 83328, 28800, 84864},{80256, 81792, 55296, 56832, 69888},{38400, 39552, 68736, 55296, 96384},{52224, 53760, 96000, 69888, 21120},{0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG7[7][5] = {{0, 0, 0, 0, 0},{0, 0, 0, 2, 0},{0, 0, 1, 2, 1},{0, 0, 0, 2, 1},{1, 1, 1, 3, 0},{1, 1, 0, 2, 1},{3, 6, 8, 10, 11}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG7[7][3] = {{53376, 49536, 54912},{48384, 13440, 50304},{22656, 25344, 43392},{22656, 25344, 43392},{22656, 25344, 43392},{22656, 25344, 43392},{0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG7[7][3] = {{0, 0, 0},{0, 0, 0},{1, 1, 0},{2, 2, 1},{3, 3, 3},{4, 4, 5},{3, 6, 8}}; - -// Group of CNs with 8 BNs (CNG8) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG8[8][2] = {{111744, 113664},{100608, 102528},{66432, 83328},{80256, 55296},{52224, 68736},{66432, 83328},{80256, 18432},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG8[8][2] = {{0, 0},{0, 0},{0, 2},{2, 2},{2, 2},{2, 3},{3, 0},{1, 7}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG8[8][2] = {{52608, 54528},{48000, 49920},{22656, 43392},{37248, 43392},{37248, 43392},{37248, 43392},{37248, 8064},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG8[8][2] = {{0, 0},{0, 0},{0, 2},{2, 4},{4, 6},{6, 7},{7, 3},{1, 7}}; - -// Group of CNs with 9 BNs (CNG9) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG9[9][2] = {{112128, 113280},{38400, 101760},{80256, 81792},{52224, 53760},{66432, 67584},{52224, 53760},{95232, 95616},{38400, 39552},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG9[9][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{1, 1},{3, 3},{0, 0},{2, 2},{2, 5}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG9[9][2] = {{52992, 54144},{13440, 49152},{37248, 40320},{37248, 40320},{37248, 40320},{22656, 25344},{37248, 40320},{22656, 25344},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG9[9][2] = {{0, 0},{1, 0},{0, 0},{1, 1},{3, 3},{5, 5},{5, 5},{6, 6},{2, 5}}; - -// Group of CNs with 10 BNs (CNG10) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG10[10][1] = {{112896},{101376},{67584},{81792},{53760},{28800},{67584},{81792},{21120},{0}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG10[10][1] = {{0},{0},{0},{2},{2},{3},{2},{3},{0},{4}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG10[10][1] = {{53760},{48768},{25344},{40320},{40320},{13440},{40320},{40320},{8064},{0}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG10[10][1] = {{0},{0},{0},{2},{4},{2},{6},{7},{4},{4}}; - -// Group of CNs with 19 BNs (CNG19) -// R13 -static const uint32_t startAddrBnProcBuf_BG1_R13_CNG19[19][4] = {{109824, 110208, 110592, 110976},{99072, 25728, 99456, 99840},{24192, 64128, 27264, 65280},{62976, 44160, 44544, 44928},{16128, 16512, 16896, 37248},{34944, 75648, 36096, 78720},{24192, 34944, 77184, 37248},{75648, 25728, 36096, 78720},{47616, 49152, 27264, 50688},{75648, 77184, 77184, 78720},{62976, 47616, 64128, 65280},{24192, 25728, 49152, 50688},{47616, 49152, 27264, 50688},{94080, 47616, 49152, 50688},{24192, 25728, 94464, 94848},{34944, 64128, 27264, 37248},{62976, 77184, 36096, 65280},{75648, 18048, 20352, 78720},{17664, 19584, 19584, 20352}}; -static const uint8_t bnPosBnProcBuf_BG1_R13_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{1, 1, 0, 1},{1, 1, 1, 1},{0, 0, 1, 0},{2, 2, 1, 2},{1, 1, 1, 1},{2, 2, 1, 1},{2, 2, 2, 2},{0, 3, 3, 3},{3, 3, 0, 0},{2, 2, 3, 2},{2, 3, 2, 2},{3, 0, 0, 3},{0, 0, 1, 1}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG1_R23_CNG19[19][4] = {{50688, 51072, 51456, 51840},{46464, 11136, 46848, 47232},{9984, 17280, 12288, 19968},{14592, 14592, 17280, 19968},{4224, 6144, 8064, 12288},{9984, 14592, 11136, 19968},{4224, 14592, 17280, 19968},{28032, 6144, 17280, 34176},{28032, 31104, 8064, 34176},{28032, 31104, 31104, 34176},{28032, 14592, 31104, 34176},{4224, 6144, 17280, 19968},{28032, 31104, 8064, 34176},{28032, 14592, 17280, 19968},{9984, 11136, 31104, 34176},{14592, 31104, 12288, 19968},{28032, 31104, 17280, 34176},{28032, 6144, 6144, 34176},{4224, 4224, 3456, 3840}}; -static const uint8_t bnPosBnProcBuf_BG1_R23_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 0, 0, 0},{0, 1, 1, 1},{0, 0, 0, 1},{1, 2, 1, 2},{1, 3, 2, 3},{0, 1, 3, 0},{1, 1, 1, 1},{2, 2, 0, 2},{3, 4, 3, 3},{2, 2, 4, 4},{4, 4, 2, 4},{5, 5, 5, 5},{2, 2, 5, 5},{6, 6, 2, 6},{6, 7, 6, 6},{7, 3, 4, 7},{3, 4, 0, 0}}; -// R89 -static const uint32_t startAddrBnProcBuf_BG1_R89_CNG19[19][4] = {{28416, 28800, 29184, 29568},{26880, 10752, 27264, 27648},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 1536, 1536, 18816},{384, 384, 384, 1536}}; -static const uint8_t bnPosBnProcBuf_BG1_R89_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 1, 0, 1},{1, 2, 2, 2},{3, 3, 3, 4},{4, 5, 4, 5},{7, 6, 5, 6},{8, 7, 6, 8},{9, 9, 7, 9},{10, 10, 8, 10},{11, 12, 11, 11},{13, 13, 12, 12},{14, 14, 13, 14},{16, 15, 15, 15},{17, 17, 16, 16},{18, 19, 17, 18},{19, 20, 18, 19},{20, 0, 1, 20},{0, 1, 2, 2}}; - -// BG2 -// CNG3 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG3[3][6] = {{72960, 64128, 64512, 64896, 74112, 31872},{34176, 49536, 23040, 17664, 40320, 41088},{0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 1, 0, 0},{18, 21, 23, 25, 27, 33}}; -// CNG4 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG4[4][20] = {{59520, 60672, 70272, 62208, 62592, 62976, 72576, 63360, 63744, 73344, 73728, 65280, 36096, 65664, 74496, 66048, 74880, 66432, 36864, 75264},{67968, 69120, 16896, 29568, 22656, 72192, 16896, 20352, 17664, 34560, 35328, 50688, 45696, 31872, 51072, 36480, 51456, 46464, 32640, 51840},{52992, 28032, 54912, 55680, 44544, 30336, 56832, 39552, 49152, 25728, 49920, 31104, 31104, 40704, 57216, 46080, 57600, 32640, 41472, 57984},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},{0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},{0, 4, 8, 11, 14, 15, 16, 17, 19, 20, 24, 28, 29, 30, 31, 32, 34, 35, 36, 37}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG4[4][8] = {{36096, 37248, 43776, 38784, 39168, 39552, 46080, 39936},{41472, 42624, 9984, 20352, 22272, 45696, 9984, 22272},{30720, 11520, 32640, 33408, 29568, 22272, 34560, 26496},{0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG4[4][8] = {{0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 4, 1, 0, 1, 2},{0, 0, 0, 0, 0, 4, 0, 0},{0, 4, 8, 11, 14, 15, 16, 17}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG4[4][1] = {{18816},{16128},{15360},{0}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG4[4][1] = {{0},{0},{1},{0}}; -// CNG5 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG5[5][9] = {{69504, 61056, 61440, 61824, 71040, 71424, 71808, 34944, 35712},{19584, 69888, 44160, 70656, 22272, 25344, 48768, 44928, 50304},{28800, 21888, 24960, 19968, 55296, 56064, 56448, 30336, 45312},{54528, 43776, 38400, 38784, 39168, 28800, 29568, 39936, 26112},{0, 0, 0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 1, 0},{0, 0, 0, 0, 0, 1, 1, 0, 0},{5, 6, 7, 9, 10, 12, 13, 22, 26}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG5[5][7] = {{43008, 37632, 38016, 38400, 44544, 44928, 45312},{18432, 43392, 29184, 44160, 20352, 22272, 22272},{18432, 18432, 20352, 20352, 33024, 33792, 34176},{32256, 28800, 25344, 25728, 26112, 11904, 12288},{0, 0, 0, 0, 0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG5[5][7] = {{0, 0, 0, 0, 0, 0, 0},{2, 0, 0, 0, 1, 3, 0},{4, 1, 3, 2, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0},{5, 6, 7, 9, 10, 12, 13}}; -// R23 -// none -// CNG6 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG6[6][3] = {{59904, 60288, 68736},{68352, 48000, 48384},{47616, 43008, 43392},{42624, 24576, 54144},{53376, 53760, 38016},{0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG6[6][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{1, 2, 3}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG6[6][3] = {{36480, 36864, 42240},{41856, 18432, 20352},{16512, 28032, 28416},{27648, 18432, 31872},{31104, 31488, 24960},{0, 0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG6[6][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 3, 0},{0, 0, 0},{1, 2, 3}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG6[6][2] = {{19200, 19584},{16896, 12672},{11520, 12672},{11520, 12672},{16128, 16896},{0, 0}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG6[6][2] = {{0, 0},{0, 0},{0, 1},{1, 2},{1, 1},{1, 2}}; -// CNG8 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG8[8][2] = {{58368, 59136},{66816, 67200},{33408, 16128},{14592, 15360},{20736, 18816},{23424, 27264},{26496, 27264},{52224, 37248}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{0, 0},{0, 0},{0, 1},{0, 0}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG8[8][2] = {{34944, 35712},{40320, 40704},{6912, 9216},{7680, 8448},{12672, 14592},{12672, 14592},{12672, 11136},{29952, 24192}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{1, 2},{3, 4},{4, 0},{0, 0}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG8[8][2] = {{17664, 18432},{13824, 14592},{1152, 7296},{3456, 5376},{3456, 5376},{9216, 5376},{3456, 2304},{13824, 1152}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{2, 3},{2, 4},{4, 1},{1, 2}}; -// CNG10 -// R15 -static const uint32_t startAddrBnProcBuf_BG2_R15_CNG10[10][2] = {{58752, 67584},{15360, 33792},{14592, 16128},{46848, 47232},{21120, 21504},{41856, 42240},{18432, 19200},{23808, 24192},{52608, 28032},{26496, 37632}}; -static const uint8_t bnPosBnProcBuf_BG2_R15_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{1, 0}}; -// R13 -static const uint32_t startAddrBnProcBuf_BG2_R13_CNG10[10][2] = {{35328, 41088},{8448, 7296},{7680, 9216},{12672, 14592},{14592, 16512},{26880, 27264},{12672, 16512},{14592, 16512},{30336, 16512},{10752, 24576}}; -static const uint8_t bnPosBnProcBuf_BG2_R13_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{1, 1},{0, 0},{2, 2},{3, 3},{0, 4},{0, 0}}; -// R23 -static const uint32_t startAddrBnProcBuf_BG2_R23_CNG10[10][2] = {{18048, 15360},{5376, 2304},{3456, 7296},{9216, 10368},{5376, 7296},{9216, 10368},{3456, 7296},{10368, 11520},{14592, 7296},{1152, 2304}}; -static const uint8_t bnPosBnProcBuf_BG2_R23_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{2, 2},{1, 1},{3, 3},{2, 2},{1, 4},{1, 2}}; - -// LUT for llr2llrProcBuf -// BG1 -// R13 -static const uint16_t llr2llrProcBufAddr_BG1_R13[26] = {25728,25344,17664,22272,20352,16128,19200,23424,19200,17664,23424,20736,23424,22272,20736,17664,20736,20736,24960,17664,19200,22272,23424,16512,16896,16896}; -static const uint8_t llr2llrProcBufBnPos_BG1_R13[26] = {0,0,0,0,0,0,0,0,1,1,1,0,2,1,1,2,2,3,0,3,2,2,3,0,0,1}; -// R23 -static const uint16_t llr2llrProcBufAddr_BG1_R23[26] = {13056,12672,5760,6912,6912,3840,5760,6912,6912,3840,9600,9600,9600,9600,6912,3840,9600,6912,9600,5760,6912,9600,9600,3840,3840,3456}; -static const uint8_t llr2llrProcBufBnPos_BG1_R23[26] = {0,0,0,0,1,0,1,2,3,1,0,1,2,3,4,2,4,5,5,2,6,6,7,3,4,0}; -// R89 -static const uint16_t llr2llrProcBufAddr_BG1_R89[26] = {9984,9600,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,1536,384,384,384}; -static const uint8_t llr2llrProcBufBnPos_BG1_R89[26] = {0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,0,1,2}; - -// BG2 -// R15 -static const uint16_t llr2llrProcBufAddr_BG2_R15[14] = {19200,19584,17280,14592,14592,18432,15744,18048,15360,16128,16512,18816,16512,17664}; -static const uint8_t llr2llrProcBufBnPos_BG2_R15[14] = {0,0,0,0,1,0,0,0,0,0,0,0,1,0}; -// R13 -static const uint16_t llr2llrProcBufAddr_BG2_R13[14] = {11520,11904,6912,7296,7296,8448,8448,10752,8448,8448,8448,11136,8064,10368}; -static const uint8_t llr2llrProcBufBnPos_BG2_R13[14] = {0,0,0,0,1,0,1,0,2,3,4,0,0,0}; -// R23 -static const uint16_t llr2llrProcBufAddr_BG2_R23[14] = {6144,5376,1152,2304,2304,4224,2304,4224,2304,4224,2304,5376,1152,1152}; -static const uint8_t llr2llrProcBufBnPos_BG2_R23[14] = {0,0,0,0,1,0,2,1,3,2,4,1,1,2}; - -// LUT for llr2cnProcBuf -// LUTs are not rate dependent, however the number of CN in a CNG varies with rate -// CNG3 -// BG1 -static const uint8_t posBnInCnProcBuf_BG1_CNG3[3][1] = {{0},{1},{26}}; -// CNG4 -static const uint8_t posBnInCnProcBuf_BG1_CNG4[4][5] = {{1, 1, 0, 0, 1},{6, 13, 8, 4, 6},{8, 23, 17, 24, 10},{49, 59, 62, 64, 67}}; -// CNG5 -static const uint8_t posBnInCnProcBuf_BG1_CNG5[5][18] = {{0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0},{12, 2, 6, 2, 4, 14, 10, 7, 12, 2, 7, 6, 14, 9, 3, 3, 16, 7},{13, 10, 7, 4, 19, 18, 13, 22, 14, 11, 15, 12, 15, 10, 7, 9, 18, 9},{17, 18, 14, 15, 21, 25, 24, 25, 24, 21, 17, 22, 18, 12, 19, 18, 25, 22},{44, 45, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 63, 65, 66}}; -// CNG6 -static const uint8_t posBnInCnProcBuf_BG1_CNG6[6][8] = {{0, 1, 0, 1, 0, 0, 1, 0},{3, 3, 14, 12, 1, 3, 5, 3},{7, 11, 16, 13, 7, 9, 16, 4},{20, 20, 17, 18, 8, 11, 20, 11},{23, 22, 21, 19, 10, 22, 21, 22},{35, 38, 39, 40, 41, 42, 43, 46}}; -// CNG7 -static const uint8_t posBnInCnProcBuf_BG1_CNG7[7][5] = {{0, 1, 0, 0, 0},{1, 2, 1, 12, 1},{4, 4, 10, 15, 10},{7, 7, 11, 16, 13},{8, 8, 13, 17, 18},{14, 14, 18, 21, 25},{29, 32, 34, 36, 37}}; -// CNG8 -static const uint8_t posBnInCnProcBuf_BG1_CNG8[8][2] = {{0, 0},{1, 1},{3, 12},{12, 16},{16, 21},{21, 22},{22, 23},{27, 33}}; -// CNG9 -static const uint8_t posBnInCnProcBuf_BG1_CNG9[9][2] = {{0, 0},{6, 1},{10, 10},{11, 11},{13, 13},{17, 17},{18, 18},{20, 20},{28, 31}}; -// CNG10 -static const uint8_t posBnInCnProcBuf_BG1_CNG10[10][1] = {{0},{1},{3},{12},{16},{19},{21},{22},{24},{30}}; -// CNG19 -static const uint8_t posBnInCnProcBuf_BG1_CNG19[19][4] = {{0, 0, 0, 0},{1, 2, 1, 1},{2, 3, 2, 3},{3, 4, 4, 4},{5, 5, 5, 6},{6, 7, 6, 7},{9, 8, 7, 8},{10, 9, 8, 10},{11, 11, 9, 11},{12, 12, 10, 12},{13, 14, 13, 13},{15, 15, 14, 14},{16, 16, 15, 16},{18, 17, 17, 17},{19, 19, 18, 18},{20, 21, 19, 20},{21, 22, 20, 21},{22, 23, 24, 22},{23, 24, 25, 25}}; - -// BG2 -static const uint8_t posBnInCnProcBuf_BG2_CNG3[3][6] = {{1, 0, 0, 0, 1, 10},{2, 5, 6, 4, 13, 13},{32, 35, 37, 39, 41, 47}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG4[4][20] = {{0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 2, 0, 1, 0, 1, 0, 2, 1},{1, 1, 3, 10, 6, 1, 4, 8, 3, 2, 2, 5, 7, 12, 5, 2, 5, 7, 10, 5},{11, 12, 11, 11, 7, 10, 11, 13, 5, 9, 5, 12, 10, 13, 11, 7, 11, 12, 13, 11},{14, 18, 22, 25, 28, 29, 30, 31, 33, 34, 38, 42, 43, 44, 45, 46, 48, 49, 50, 51}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG5[5][9] = {{1, 0, 0, 0, 1, 1, 1, 2, 2},{8, 1, 7, 1, 6, 9, 5, 7, 5},{10, 6, 9, 8, 11, 11, 11, 12, 7},{11, 7, 13, 13, 13, 12, 12, 13, 9},{19, 20, 21, 23, 24, 26, 27, 36, 40}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG6[6][3] = {{0, 0, 1},{1, 5, 5},{5, 7, 7},{7, 9, 11},{11, 11, 13},{15, 16, 17}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG8[8][2] = {{0, 0},{1, 1},{2, 3},{3, 4},{6, 8},{9, 10},{10, 12},{11, 13}}; -static const uint8_t posBnInCnProcBuf_BG2_CNG10[10][2] = {{0, 1},{3, 2},{4, 4},{5, 5},{6, 6},{7, 7},{8, 8},{9, 9},{11, 10},{12, 13}}; - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/Makefile b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/Makefile deleted file mode 100644 index 5c91b2722d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -C=gcc -CFLAGS=-W -Wall -mavx2 -LDFLAGS= -EXEC=bnProc_gen_avx2 -SRC= $(wildcard *.c) -OBJ= $(SRC:.c=.o) - -all: $(EXEC) - -bnProc_gen_avx2: $(OBJ) - @$(CC) -o $@ $^ $(LDFLAGS) -O2 - - - -%.o: %.c - @$(CC) -o $@ -c $< $(CFLAGS) -I ${OPENAIR_HOME}/openair1 -g -std=c99 - -.PHONY: clean mrproper - -clean: - @rm -rf *.o - -mrproper: clean - @rm -rf $(EXEC) - -zip: - @tar -zcvf sauvegarde.tar.gz main.c bnProcPc_gen_BG1_avx2.c bnProcPc_gen_BG2_avx2.c bnProc_gen_BG1_avx2.c bnProc_gen_BG2_avx2.c Makefile diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c deleted file mode 100644 index 5fe08998d8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c +++ /dev/null @@ -1,1777 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - fprintf(fd,"void nrLDPC_bnProcPc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} -/* - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; -*/ - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - // uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - fprintf(fd," __m256i ymm0, ymm1, ymmRes0, ymmRes1; \n"); - - - fprintf(fd," __m128i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m128i* p_llrProcBuf;\n"); - fprintf(fd," __m256i* p_llrProcBuf256; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - - - - - - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 1 CNs \n"); - - // if (lut_numBnInBnGroups[1] > 0) - // { - // If elements in group move to next address -// idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrProcBuf256 = (__m256i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - - //for (i=0,j=0;i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - - // Loop over CNs - for (k=1; k<2; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 3 CNs - - -fprintf(fd, "// Process group with 3 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // ymm0 = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 4 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 5 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<6; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 7 CNs - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 8 CNs - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<8; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 10 CNs - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<10; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<11; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 12 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<12; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with 13 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<13; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 14 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<14; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 15 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<15; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 16 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<16; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<17; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<18; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 19 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<19; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 20 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<20; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<21; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 22 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<22; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with <23 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<23; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<24; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 25 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<25; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 26 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<26; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<27; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<28; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<29; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<30; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c deleted file mode 100644 index 68783ae0da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c +++ /dev/null @@ -1,1773 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - //fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z,ratestr[R]); - - fprintf(fd,"void nrLDPC_bnProcPc_BG2_Z%d_R%s_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z,ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - //BG1 - if (R==0) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; - } - else if (R==1) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; - } - else if (R==2) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; - } - - - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - // uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - fprintf(fd," __m256i ymm0, ymm1, ymmRes0, ymmRes1; \n"); - - - fprintf(fd," __m128i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m128i* p_llrProcBuf;\n"); - fprintf(fd," __m256i* p_llrProcBuf256; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - - - - - - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 1 CNs \n"); - - // if (lut_numBnInBnGroups[1] > 0) - // { - // If elements in group move to next address -// idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrProcBuf256 = (__m256i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - - //for (i=0,j=0;i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - - // Loop over CNs - for (k=1; k<2; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 3 CNs - - -fprintf(fd, "// Process group with 3 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // ymm0 = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 4 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 5 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<6; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 7 CNs - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 8 CNs - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<8; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - //fprintf(fd," (__m256i*) &llrRes[%d + i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 10 CNs - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<10; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<11; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 12 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<12; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with 13 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<13; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 14 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<14; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 15 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<15; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 16 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<16; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<17; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<18; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 19 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<19; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 20 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<20; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<21; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - // ===================================================================== - // Process group with 2 CNs - - -fprintf(fd, "// Process group with 22 CNs \n"); - - // Process group with 2 CNs - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<22; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 13 CNs - - -fprintf(fd, "// Process group with <23 CNs \n"); - - // Process group with 3 CNs - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<23; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 4 CNs - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<24; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 CNs - -fprintf(fd, "// Process group with 25 CNs \n"); - - // Process group with 5 CNs - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<25; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - - // ===================================================================== - // Process group with 6 CNs - -fprintf(fd, "// Process group with 26 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<26; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<27; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 18 CNs - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<28; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 CNs - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<29; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 20 CNs - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); - // First 16 LLRs of first CN - fprintf(fd," ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]);\n"); - - // Loop over CNs - for (k=1; k<30; k++) - { - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j]);\n", k*cnOffsetInGroup); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[%d + j +1]);\n", k*cnOffsetInGroup); - - fprintf(fd, " ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); \n"); - } - - // Add LLR from receiver input - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0);\n"); - - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1);\n"); - - // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); - // 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]] - fprintf(fd," *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); - fprintf(fd," p_llrRes++;\n"); - fprintf(fd,"}\n"); - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c deleted file mode 100644 index 0fffb241af..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c +++ /dev/null @@ -1,1235 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - - - fprintf(fd," __m256i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - fprintf(fd," __m256i* p_res; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<2; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<3; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<4; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<5; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<6; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<7; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<8; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<9; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<10; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<11; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 12 CNs \n"); - - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<12; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 13 CNs \n"); - - - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<1; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 14 CNs \n"); - - - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<14; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 15 CNs \n"); - - - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<15; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 16 CNs \n"); - - - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<16; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<17; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<18; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 19 CNs \n"); - - - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<19; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 20 CNs \n"); - - - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<20; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<21; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 22 CNs \n"); - - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<22; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with <23 CNs \n"); - - - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<23; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<24; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 25 CNs \n"); - - - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<25; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 26 CNs \n"); - - - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<26; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<27; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<28; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<29; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<30; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 deleted file mode 100644 index 7f5110072d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 +++ /dev/null @@ -1,1235 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - - - fprintf(fd," __m256i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - fprintf(fd," __m256i* p_res; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<2; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<3; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<4; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<5; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<6; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<7; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<8; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<9; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<10; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<11; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 12 CNs \n"); - - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<12; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 13 CNs \n"); - - - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<1; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 14 CNs \n"); - - - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<14; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 15 CNs \n"); - - - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<15; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 16 CNs \n"); - - - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<16; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<17; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<18; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 19 CNs \n"); - - - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<19; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 20 CNs \n"); - - - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<20; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<21; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 22 CNs \n"); - - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<22; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with <23 CNs \n"); - - - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<23; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<24; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 25 CNs \n"); - - - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<25; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 26 CNs \n"); - - - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<26; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<27; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<28; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<29; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<30; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c deleted file mode 100644 index d36aa8e21b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c +++ /dev/null @@ -1,1232 +0,0 @@ -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" - -void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - fprintf(fd,"void nrLDPC_bnProc_BG2_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { - - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; - - } - else if (R==1){ - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; - } - else if (R==2) { - - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - - - fprintf(fd," __m256i* p_bnProcBuf; \n"); - fprintf(fd," __m256i* p_bnProcBufRes; \n"); - fprintf(fd," __m256i* p_llrRes; \n"); - fprintf(fd," __m256i* p_res; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<2; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<3; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - for (k=0; k<4; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<5; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 6 CNs \n"); - - // Process group with 6 CNs - - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<6; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 7 CNs \n"); - - // Process group with 7 CNs - - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<7; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 8 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<8; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 9 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<9; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 10 CNs \n"); - - // Process group with 10 CNs - - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<10; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - -fprintf(fd, "// Process group with 11 CNs \n"); - - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<11; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 12 CNs \n"); - - - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<12; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 13 CNs \n"); - - - - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<1; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 14 CNs \n"); - - - - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<14; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 15 CNs \n"); - - - - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<15; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 16 CNs \n"); - - - - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<16; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - // Process group with 17 CNs - -fprintf(fd, "// Process group with 17 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<17; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 18 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<18; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 19 CNs \n"); - - - - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<19; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 20 CNs \n"); - - - - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<20; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - - - // ===================================================================== - -fprintf(fd, "// Process group with 21 CNs \n"); - - - - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<21; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - // ===================================================================== - - - -fprintf(fd, "// Process group with 22 CNs \n"); - - - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<22; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - - - -fprintf(fd, "// Process group with 23 CNs \n"); - - - - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<23; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 24 CNs \n"); - - // Process group with 4 CNs - - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<24; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 25 CNs \n"); - - - - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<25; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 26 CNs \n"); - - - - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<26; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 27 CNs \n"); - - // Process group with 17 CNs - - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<27; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - - -fprintf(fd, "// Process group with 28 CNs \n"); - - // Process group with 8 CNs - - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<28; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - // ===================================================================== - -fprintf(fd, "// Process group with 29 CNs \n"); - - // Process group with 9 CNs - - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<29; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - - // ===================================================================== - -fprintf(fd, "// Process group with 30 CNs \n"); - - // Process group with 20 CNs - - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - // Loop over CNs - for (k=0; k<30; k++) - { - fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); - fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - - // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); - fprintf(fd," p_res++;\n"); - fprintf(fd," p_llrRes++;\n"); - - fprintf(fd,"}\n"); - - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 deleted file mode 100755 index 858e228f66..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c deleted file mode 100644 index c1737098e9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include -#define NB_Z 51 -void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t,int); -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t,int); - - -int main() -{ - uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}; - - for(int i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX2(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R%s_AVX2.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - //__m256i* p_cnProcBuf; - //__m256i* p_cnProcBufRes; - - // Number of CNs in Groups - //uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - //__m256i ymm0, min, sgn; - //__m256i* p_cnProcBufResBit; - - // const __m256i* p_ones = (__m256i*) ones256_epi8; - // const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - // const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - fprintf(fd," __m256i ymm0, min, sgn,ones,maxLLR;\n"); - fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); - fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); - - fprintf(fd," uint32_t M;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 3 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG3[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); - - // Abs and sign of 32 CNs (first BN) - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]+1); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]+1); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG4[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG5[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 96 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG6[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 60 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG7[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG7[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 4 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG8[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG8[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 24 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[6] ); - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 9 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG9[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>5)+lut_idxCnProcG9[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[6]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 12 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - - - - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 10 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG10[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>5)+lut_idxCnProcG10[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[7]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 12 - 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 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - - // Set pointers to start of group 19 - //p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - //p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - //p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - // for (i=0; i>5)+lut_idxCnProcG19[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>5)+lut_idxCnProcG19[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[8]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o deleted file mode 100644 index bb2aa672a6..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c deleted file mode 100644 index 6c4c603a7e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c +++ /dev/null @@ -1,429 +0,0 @@ -#include -#include -#include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" - - -void nrLDPC_cnProc_BG2_generator_AVX2(int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - -// system("mkdir -p ldpc_gen_files/avx2"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R%s_AVX2.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - // Number of CNs in Groups - //uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 byte - uint32_t bitOffsetInGroup; - - // Offsets are in units of bitOffsetInGroup (1*384/32) - // const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - - fprintf(fd," __m256i ymm0, min, sgn,ones,maxLLR;\n"); - fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); - fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); - fprintf(fd," uint32_t M;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG3[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); - - // Abs and sign of 32 CNs (first BN) - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]+1); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]+1); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - - // Offset is 20*384/32 = 240 - const uint16_t lut_idxCnProcG4[4][3] = {{240,480,720}, {0,480,720}, {0,240,720}, {0,240,480}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<4; j++) - { - - // Loop over CNs - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG4[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - - // Offset is 9*384/32 = 108 - 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}}; - - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] ); - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG5[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 3*384/32 = 36 - const uint16_t lut_idxCnProcG6[6][5] = {{36,72,108,144,180}, {0,72,108,144,180}, - {0,36,108,144,180}, {0,36,72,144,180}, - {0,36,72,108,180}, {0,36,72,108,144}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - - // Loop over CNs - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG6[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - 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}}; - - - - - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<8; j++) - { - - // Loop over CNs - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG8[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG8[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - - const uint8_t lut_idxCnProcG10[10][9] = {{24,48,72,96,120,144,168,192,216}, {0,48,72,96,120,144,168,192,216}, - {0,24,72,96,120,144,168,192,216}, {0,24,48,96,120,144,168,192,216}, - {0,24,48,72,120,144,168,192,216}, {0,24,48,72,96,144,168,192,216}, - {0,24,48,72,96,120,168,192,216}, {0,24,48,72,96,120,144,192,216}, - {0,24,48,72,96,120,144,168,216}, {0,24,48,72,96,120,144,168,192}}; - - - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 32 byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Loop over every BN - - for (j=0; j<10; j++) - { - - // Loop over CNs - - fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG10[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG10[j][k]); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - } - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG2 - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o deleted file mode 100644 index 95abb7b348..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 deleted file mode 100755 index 29fc76d279..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c deleted file mode 100644 index 3086439a9e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c +++ /dev/null @@ -1,20 +0,0 @@ - -#include -#include -#define NB_R 3 -void nrLDPC_cnProc_BG1_generator_AVX2(int); -void nrLDPC_cnProc_BG2_generator_AVX2(int); -int main() -{ - int R[NB_R]={0,1,2}; - for(int i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - // fprintf(fd,"#include \n"); -// fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // for (k=1; k<2; k++) - //{ - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - // } - - // Store result - // min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 9 BNs - - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<9; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - - - - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c deleted file mode 100644 index 9b8b36ba30..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c +++ /dev/null @@ -1,409 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG2_generator_AVX512(int R) -{ - const char *ratestr[3]={"15","13","23"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - //fprintf(fd,"#include \n"); -// fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - //fprintf(fd,"static inline void nrLDPC_cnProc_BG2_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes, uint16_t Z) {\n",Z,ratestr[R]); - fprintf(fd,"void nrLDPC_cnProc_BG2_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - // Number of CNs in Groups - //uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - fprintf(fd," uint32_t M;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<3; j++) - { - - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG3[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][0]/2)+1); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][1]/2)+1); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 20*384/32 = 240 - const uint16_t lut_idxCnProcG4[4][3] = {{240,480,720}, {0,480,720}, {0,240,720}, {0,240,480}}; - - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG4[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 9*384/32 = 108 - 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}}; - - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG5[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 3*384/32 = 36 - const uint16_t lut_idxCnProcG6[6][5] = {{36,72,108,144,180}, {0,72,108,144,180}, - {0,36,108,144,180}, {0,36,72,144,180}, - {0,36,72,108,180}, {0,36,72,108,144}}; - - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG6[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - 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}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG8[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - - const uint8_t lut_idxCnProcG10[10][9] = {{24,48,72,96,120,144,168,192,216}, {0,48,72,96,120,144,168,192,216}, - {0,24,72,96,120,144,168,192,216}, {0,24,48,96,120,144,168,192,216}, - {0,24,48,72,120,144,168,192,216}, {0,24,48,72,96,144,168,192,216}, - {0,24,48,72,96,120,168,192,216}, {0,24,48,72,96,120,144,192,216}, - {0,24,48,72,96,120,144,168,216}, {0,24,48,72,96,120,144,168,192}}; - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<10; j++) - { - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG10[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG2 - - - - - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o deleted file mode 100644 index 7e811fdb42..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 deleted file mode 100755 index 6eae25907c..0000000000 Binary files a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 and /dev/null differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c deleted file mode 100644 index d3a3d16cd5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c +++ /dev/null @@ -1,20 +0,0 @@ - -#include -#include -#define NB_R 3 -void nrLDPC_cnProc_BG1_generator_AVX512(int); -void nrLDPC_cnProc_BG2_generator_AVX512(int); -int main() -{ - int R[NB_R]={0,1,2}; - for(int i=0; i -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (int i=0;i<%d;i+=2) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][0]/2)+1); - - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][1]/2)+1); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)+1); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - // sgn = _mm512_sign_epi816(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn, zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c deleted file mode 100644 index 6f9036db18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c +++ /dev/null @@ -1,557 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<3; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<8; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn, zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - - // Loop over every BN - - for (j=0; j<10; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Loop over every BN - - for (j=0; j<19; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today deleted file mode 100644 index a9dab4bf99..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today +++ /dev/null @@ -1,596 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - // Loop over every BN - - - - - for (j=0; j<3; j++) - { - - - // Set of results pointer to correct BN address - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][1]/2)); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native deleted file mode 100644 index f8de0dc0b7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native +++ /dev/null @@ -1,596 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - fprintf(fd," const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8;\n"); - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - // Loop over every BN - - - - - for (j=0; j<3; j++) - { - - - // Set of results pointer to correct BN address - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG3[j][1]/2); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG4[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",lut_idxCnProcG7[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG7[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - - // Set pointers to start of group - // Loop over every BN - - for (j=0; j<9; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG9[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG9[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG19[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG19[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - } - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled deleted file mode 100644 index 96002878a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled +++ /dev/null @@ -1,590 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - uint32_t M; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); - - - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - // Loop over every BN - - - - -fprintf(fd," for (int j=0;j<3;j++) {\n"); - - - // Set of results pointer to correct BN address - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][1]/2)); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; - - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - //for (j=0; j<4; j++) - // { - - fprintf(fd," for (int j=0;j<4;j++) {\n"); - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; - - - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<5;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; - - - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<6;j++) {\n"); - - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; - - - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<7;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, - {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, - {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; - - - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<8;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; - - - - - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - - // Set pointers to start of group - // Loop over every BN - - fprintf(fd," for (int j=0;j<9;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - // ===================================================================== - // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; - - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - fprintf(fd," for (int j=0;j<10;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - - // ===================================================================== - // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); - // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; - - - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - fprintf(fd," for (int j=0;j<11;j++) {\n"); - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][0]/2)); - fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][k]/2)); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); - fprintf(fd," p_cnProcBufResBit++;\n"); - fprintf(fd," }\n"); - fprintf(fd,"}\n"); - } - - fprintf(fd,"}\n"); - fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c deleted file mode 100644 index 5c9e0ba2c8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z104_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c deleted file mode 100644 index 17386fca34..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z10_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c deleted file mode 100644 index 72f269a3fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z112_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c deleted file mode 100644 index 59f30be553..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z11_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index 400c04c430..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z120_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 6496593bd3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z128_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c deleted file mode 100644 index 0614cf505b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z12_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c deleted file mode 100644 index 785d554559..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z13_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index d91cb1b44e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z144_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index 07ba538e90..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z14_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index 78e3f8dc35..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z15_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index cc2d9fafd7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z160_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index 29ffb5058b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z16_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index e44d7cac94..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z176_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index 765ffaf0b1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z18_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index 436effce12..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z192_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index a043cee84d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z208_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 0acb046870..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z20_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 941f05c829..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z224_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index 3bedc1da39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z22_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 3e1fb14b16..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z240_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index a1a9e7c746..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z24_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 95b6662869..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z256_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index d67252e70d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z26_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 88b1453acd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z288_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index dab5d50a75..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z28_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c deleted file mode 100644 index b5b4329183..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 82b7429182..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z30_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index c1243fe104..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z320_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 6fbf2f7060..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z32_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index 54bf723732..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z352_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index 449662b84f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z36_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index c4fa11327f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z384_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index cd0ecff86e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z3_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index b0a1d96998..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z40_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 094471b418..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z44_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index b5384c2cd2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z48_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 1c664a4a07..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z4_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index ebea97e7a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z52_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index c24d31dc62..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z56_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index 3d0523df04..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z5_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index b69c8bfb2c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z60_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index 1c51ee482f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z64_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index bbe6ddcb3e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z6_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index f74cc89ad7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z72_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index 94f64d1fad..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z7_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index 931abd13c8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z80_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 4b88d79461..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z88_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 83032f55a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z8_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index 649308b2a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z96_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index e16be52cea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z9_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c deleted file mode 100644 index 6de8a73cfe..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z104_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c deleted file mode 100644 index da7eecd7c9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z10_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index 3613096240..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z112_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index ce583e8a49..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z11_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 9567913d4c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z120_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 3dcd56e4b2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z128_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index a1e7eef92d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z12_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index c604b9c9fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z13_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 3a6d5fad9b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z144_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 0a68dcc192..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z14_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index 5e1b4e5247..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z15_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index 301752c898..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z160_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 2ff4596dec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z16_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 25d44d65dd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z176_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index d035375329..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z18_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index fe808f0262..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z192_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index b80ad2550c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z208_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index bea168af3c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z20_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 6a897f6a58..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z224_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index 1686f075cd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z22_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index ff3f02c22c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z240_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index 3a824bf742..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z24_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index 1d251bfd7e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z256_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index 9c01cb69a0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z26_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index c48b6023d6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z288_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 4b02344ea4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z28_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c deleted file mode 100644 index 81694205f4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z2_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 1ca19efbea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z30_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index cb56abe439..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z320_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index d03e2e943e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z32_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index 6be4e10dd8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z352_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index 3e447f3a1a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z36_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index 2ac44f6c53..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z384_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c deleted file mode 100644 index 3b645790d4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z3_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index a9eb5dbb00..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z40_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index a6613ef66c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z44_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index d2a7c80bb0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z48_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c deleted file mode 100644 index ae4f4d922f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z4_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 3efa774165..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z52_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index f61d8ea7d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z56_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c deleted file mode 100644 index 6528758122..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z5_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index d7a3be2173..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z60_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 58457add44..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z64_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index f9c2093489..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z6_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index 9d14029acc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z72_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index 188b6a94dd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z7_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index ac2c167b9a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z80_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 4d5ec0740c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z88_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index f4b84e4509..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z8_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 83a4a54c13..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z96_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index ed5464778a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z9_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c deleted file mode 100644 index 94b217187d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z104_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<137;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c deleted file mode 100644 index 160bce3117..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z10_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<14;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c deleted file mode 100644 index 0e753bfab3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z112_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<147;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c deleted file mode 100644 index 3a16eaa82f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z11_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<15;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index 673af9a9d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z120_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<158;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 9029ec4945..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<168;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c deleted file mode 100644 index eb63f40810..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z12_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<16;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c deleted file mode 100644 index 03b80c28e3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z13_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<18;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index 1e0e1bb9b4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z144_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<189;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index f8d5ba2422..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z14_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<19;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index c3bf9cd8c4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z15_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<20;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index 54aa60410d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z160_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<210;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index dbd57a29a2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z16_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<21;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index b33f7eff95..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z176_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<231;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<17;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<17;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index bfacf24f9e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z18_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<24;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index cb5e28d03b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<252;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index 26206a90ef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z208_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<273;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 47a80af761..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z20_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<27;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 429e77bb46..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z224_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<294;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<21;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<21;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index 5114d701ea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z22_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<29;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 0075be8dec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z240_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<315;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<23;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<23;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index 2a10721f55..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z24_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<32;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 32f7cc2f18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<336;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index ec50dbc7c6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z26_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<35;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 31c6264a07..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z288_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<378;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<27;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<27;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index 5f261e18df..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z28_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<37;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c deleted file mode 100644 index e77a0c287f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<3;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 9c40d68946..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z30_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<40;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index ad6d124bae..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z320_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<420;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 57401cbf41..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<42;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index 901bc03cd9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z352_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<462;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<33;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<33;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index 4799b8efbf..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z36_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<48;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index bccdf09c1e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<504;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index a458247cf1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z3_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<4;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index 79d4f4ae71..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z40_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<53;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 5e91ecb0c1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z44_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<58;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index 7e7af0c1ce..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<63;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 06e7bc8467..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z4_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<6;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index 6954acb650..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z52_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<69;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index dd4d169cb2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z56_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<74;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index c3943c0003..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z5_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<7;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index cd4c7ff1b9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z60_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<79;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index b9c661f6ca..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<84;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index c223a8b5b1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z6_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<8;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index 0711e1b370..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z72_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<95;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index 85384d8d39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z7_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<10;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index e7e4c7b6f4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z80_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<105;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 4d694f1874..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z88_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<116;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 548b9ab4aa..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z8_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<11;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index 8db0776e95..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<126;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index 44b8a15b39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z9_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<12;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c deleted file mode 100644 index f0ed3c3cd1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z104_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<124;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c deleted file mode 100644 index 06529a76d5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z10_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<12;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index d32d9f5a5a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z112_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<133;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index f4abd64e20..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z11_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<14;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 192f387978..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z120_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<143;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 7c87845b5b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<152;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index b640cc9b50..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z12_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<15;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index fc400c6368..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z13_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<16;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 8f10c6f9a6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z144_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<171;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 3f6be2d8b3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z14_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<17;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index 18433a0bb9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z15_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<18;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index a707e979a3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z160_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<190;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 2db176ef99..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z16_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<19;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 0a4986e855..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z176_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<209;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index 73ec5b7694..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z18_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<22;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index 57c3a14331..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<228;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index df3810a159..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z208_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<247;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index ccabb48171..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z20_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<24;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 3863cc0b78..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z224_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<266;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index e63c5fd552..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z22_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<27;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index 6502335168..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z240_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<285;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index bf727cb7da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z24_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<29;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index 21e3b405ee..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<304;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index aada1582fb..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z26_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<31;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index dbd644f48b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z288_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<342;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 465742e608..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z28_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<34;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c deleted file mode 100644 index e93cdfcf11..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z2_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<3;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 8d060b7c79..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z30_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<36;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index 92268f3d53..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z320_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<380;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index bfc4c0b52b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<38;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index 2c6cc7b6b0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z352_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<418;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index ed4a0100a9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z36_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<43;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index a5c0f02b5b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<456;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c deleted file mode 100644 index 43e8bcd7de..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z3_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<4;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index 24438b13cd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z40_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<48;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index 0f324af960..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z44_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<53;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index 9e88e7b0ed..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<57;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c deleted file mode 100644 index 12597e8f2f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z4_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<5;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 6b6566f36e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z52_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<62;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index b1cce64577..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z56_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<67;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c deleted file mode 100644 index 5991558809..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z5_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<6;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index 9c83e7d431..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z60_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<72;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 9dd53e1642..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<76;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index b7e769a154..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z6_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<8;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index 749b21d603..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z72_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<86;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index ba4a638274..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z7_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<9;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index b60d9c6ad4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z80_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<95;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 607d88744c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z88_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<105;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index 0aa77ce254..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z8_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<10;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 4239544706..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<114;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index 5c085b51c2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z9_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<11;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c deleted file mode 100644 index aa171558fd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c +++ /dev/null @@ -1,2346 +0,0 @@ -#include -#include -static inline void nrLDPC_cnProc_BG1_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R89_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG1_R89_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (8*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (8*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R15_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (6*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R15_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - M = (6*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -static inline void nrLDPC_cnProc_BG2_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - uint32_t M; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; -//Process group with 4 BNs - M = (1*Z + 31)>>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i>5; - for (int i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -static inline void nrLDPC_cnProc_BG1_R13_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { - uint32_t M, i; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i* p_cnProcBufResBit; - __m512i* p_cnProcBufRes; - __m512i* p_cnProcBuf; - __m512i zmm0, min, sgn,zeros,maxLLR, ones; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - ones = _mm512_set1_epi8((char)1); -//Process group with 3 BNs - M = (1*Z + 63)>>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[0]; - p_cnProcBuf = (__m512i*) &cnProcBuf[0]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[1152]; - p_cnProcBuf = (__m512i*) &cnProcBuf[1152]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[8832]; - p_cnProcBuf = (__m512i*) &cnProcBuf[8832]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[43392]; - p_cnProcBuf = (__m512i*) &cnProcBuf[43392]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[61824]; - p_cnProcBuf = (__m512i*) &cnProcBuf[61824]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[75264]; - p_cnProcBuf = (__m512i*) &cnProcBuf[75264]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[81408]; - p_cnProcBuf = (__m512i*) &cnProcBuf[81408]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[88320]; - p_cnProcBuf = (__m512i*) &cnProcBuf[88320]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[92160]; - p_cnProcBuf = (__m512i*) &cnProcBuf[92160]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -static inline void nrLDPC_cnProc_BG1_R23_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { - uint32_t M, i; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i* p_cnProcBufResBit; - __m512i* p_cnProcBufRes; - __m512i* p_cnProcBuf; - __m512i zmm0, min, sgn,zeros,maxLLR, ones; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - ones = _mm512_set1_epi8((char)1); -//Process group with 3 BNs - M = (1*Z + 63)>>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[0]; - p_cnProcBuf = (__m512i*) &cnProcBuf[0]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[61824]; - p_cnProcBuf = (__m512i*) &cnProcBuf[61824]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[75264]; - p_cnProcBuf = (__m512i*) &cnProcBuf[75264]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[81408]; - p_cnProcBuf = (__m512i*) &cnProcBuf[81408]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[88320]; - p_cnProcBuf = (__m512i*) &cnProcBuf[88320]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[92160]; - p_cnProcBuf = (__m512i*) &cnProcBuf[92160]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -static inline void nrLDPC_cnProc_BG1_R89_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { - uint32_t M, i; - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i* p_cnProcBufResBit; - __m512i* p_cnProcBufRes; - __m512i* p_cnProcBuf; - __m512i zmm0, min, sgn,zeros,maxLLR, ones; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - ones = _mm512_set1_epi8((char)1); -//Process group with 3 BNs - M = (1*Z + 63)>>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[0]; - p_cnProcBuf = (__m512i*) &cnProcBuf[0]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;i>6; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[92160]; - p_cnProcBuf = (__m512i*) &cnProcBuf[92160]; - p_cnProcBufResBit = p_cnProcBufRes + 0 ; - for (i=0;icnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); -//Process group with 3 BNs -//Process group with 4 BNs - M = (8*Z + 63)>>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;icnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); -//Process group with 3 BNs - M = (20*Z + 63)>>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;icnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); -//Process group with 3 BNs -//Process group with 4 BNs - M = (1*Z + 63)>>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i>6; - for (int i=0;i - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_DEBUG__H__ -#define __NR_LDPC_DEBUG__H__ - -#include - -/** - Enum with possible LDPC data buffers - */ -typedef enum nrLDPC_buffers { - nrLDPC_buffers_LLR_PROC, /**< LLR processing buffer */ - nrLDPC_buffers_CN_PROC, /**< CN processing buffer */ - nrLDPC_buffers_CN_PROC_RES, /**< CN processing results buffer */ - nrLDPC_buffers_BN_PROC, /**< BN processing buffer */ - nrLDPC_buffers_BN_PROC_RES, /**< BN processing results buffer */ - nrLDPC_buffers_LLR_RES /**< LLR results buffer */ -} e_nrLDPC_buffers; - -/** - \brief Writes N data samples to a file - \param fileName Name of the file - \param p_data Pointer to the data - \param N Number of values to write -*/ -static inline void nrLDPC_writeFile(const char* fileName, int8_t* p_data, const uint32_t N) -{ - FILE *f; - uint32_t i; - - f = fopen(fileName, "a"); - - // Newline indicating new data - fprintf(f, "\n"); - for (i=0; i < N; i++) - { - fprintf(f, "%d, ", p_data[i]); - } - - fclose(f); -} - -/** - \brief Creates empty new file - \param fileName Name of the file -*/ -static inline void nrLDPC_initFile(const char* fileName) -{ - FILE *f; - - f = fopen(fileName, "w"); - - fprintf(f, " "); - - fclose(f); -} - -/** - \brief Writes data of predefined buffers to file - \param buffer Enum of buffer name to write -*/ -static inline void nrLDPC_debug_writeBuffer2File(e_nrLDPC_buffers buffer, t_nrLDPC_procBuf* p_procBuf) -{ - switch (buffer) - { - case nrLDPC_buffers_LLR_PROC: - { - nrLDPC_writeFile("llrProcBuf.txt", p_procBuf->llrProcBuf, NR_LDPC_MAX_NUM_LLR); - break; - } - case nrLDPC_buffers_CN_PROC: - { - nrLDPC_writeFile("cnProcBuf.txt", p_procBuf->cnProcBuf, NR_LDPC_SIZE_CN_PROC_BUF); - break; - } - case nrLDPC_buffers_CN_PROC_RES: - { - nrLDPC_writeFile("cnProcBufRes.txt", p_procBuf->cnProcBufRes, NR_LDPC_SIZE_CN_PROC_BUF); - break; - } - case nrLDPC_buffers_BN_PROC: - { - nrLDPC_writeFile("bnProcBuf.txt", p_procBuf->bnProcBuf, NR_LDPC_SIZE_BN_PROC_BUF); - break; - } - case nrLDPC_buffers_BN_PROC_RES: - { - nrLDPC_writeFile("bnProcBufRes.txt", p_procBuf->bnProcBufRes, NR_LDPC_SIZE_BN_PROC_BUF); - break; - } - case nrLDPC_buffers_LLR_RES: - { - nrLDPC_writeFile("llrRes.txt", p_procBuf->llrRes, NR_LDPC_MAX_NUM_LLR); - break; - } - } -} - -/** - \brief Initializes file for writing a buffer - \param buffer Enum of buffer name to write -*/ -static inline void nrLDPC_debug_initBuffer2File(e_nrLDPC_buffers buffer) -{ - switch (buffer) - { - case nrLDPC_buffers_LLR_PROC: - { - nrLDPC_initFile("llrProcBuf.txt"); - break; - } - case nrLDPC_buffers_CN_PROC: - { - nrLDPC_initFile("cnProcBuf.txt"); - break; - } - case nrLDPC_buffers_CN_PROC_RES: - { - nrLDPC_initFile("cnProcBufRes.txt"); - break; - } - case nrLDPC_buffers_BN_PROC: - { - nrLDPC_initFile("bnProcBuf.txt"); - break; - } - case nrLDPC_buffers_BN_PROC_RES: - { - nrLDPC_initFile("bnProcBufRes.txt"); - break; - } - case nrLDPC_buffers_LLR_RES: - { - nrLDPC_initFile("llrRes.txt"); - break; - } - } -} - -/** - \brief Prints 256 data type - \param in Input to print -*/ -static inline void nrLDPC_debug_print256i_epi8(__m256i* in) -{ - uint32_t i; - - for (i=0; i<32; i++) - { - mexPrintf("%d ", ((int8_t*)&in)[i]); - } -} - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_types.h b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_types.h deleted file mode 100644 index b802e07104..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_types.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_types.h - * \brief Defines all types for the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_TYPES__H__ -#define __NR_LDPC_TYPES__H__ -#include "../../TOOLS/time_meas.h" -#include "nrLDPCdecoder_defs.h" -// ============================================================================== -// TYPES - -/** - Structure containing the pointers to the LUTs. - */ -typedef struct nrLDPC_lut { - const uint32_t* startAddrCnGroups; /**< Start addresses for CN groups in CN processing buffer */ - const uint8_t* numCnInCnGroups; /**< Number of CNs in every CN group */ - const uint8_t* numBnInBnGroups; /**< Number of CNs in every BN group */ - const uint32_t* startAddrBnGroups; /**< Start addresses for BN groups in BN processing buffer */ - const uint16_t* startAddrBnGroupsLlr; /**< Start addresses for BN groups in LLR processing buffer */ - const uint16_t** circShift[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT for circular shift values for all CN groups and Zs */ - const uint32_t** startAddrBnProcBuf[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT of start addresses of CN groups in BN proc buffer */ - const uint8_t** bnPosBnProcBuf[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT of BN positions in BG for CN groups */ - const uint16_t* llr2llrProcBufAddr; /**< LUT for transferring input LLRs to LLR processing buffer */ - const uint8_t* llr2llrProcBufBnPos; /**< LUT BN position in BG */ - const uint8_t** posBnInCnProcBuf[NR_LDPC_NUM_CN_GROUPS_BG1]; /**< LUT for llr2cnProcBuf */ -} t_nrLDPC_lut; - -/** - Enum with possible LDPC output formats. - */ -typedef enum nrLDPC_outMode { - nrLDPC_outMode_BIT, /**< 32 bits per uint32_t output */ - nrLDPC_outMode_BITINT8, /**< 1 bit per int8_t output */ - nrLDPC_outMode_LLRINT8 /**< Single LLR value per int8_t output */ -} e_nrLDPC_outMode; - -/** - Structure containing LDPC decoder parameters. - */ -typedef struct nrLDPC_dec_params { - uint8_t BG; /**< Base graph */ - uint16_t Z; /**< Lifting size */ - uint8_t R; /**< Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ - uint8_t numMaxIter; /**< Maximum number of iterations */ - e_nrLDPC_outMode outMode; /**< Output format */ -} t_nrLDPC_dec_params; - -/** - Structure containing LDPC decoder processing time statistics. - */ -typedef struct nrLDPC_time_stats { - time_stats_t llr2llrProcBuf; /**< Statistics for function llr2llrProcBuf */ - time_stats_t llr2CnProcBuf; /**< Statistics for function llr2CnProcBuf */ - time_stats_t cnProc; /**< Statistics for function cnProc */ - time_stats_t cnProcPc; /**< Statistics for function cnProcPc */ - time_stats_t bnProcPc; /**< Statistics for function bnProcPc */ - time_stats_t bnProc; /**< Statistics for function bnProc */ - time_stats_t cn2bnProcBuf; /**< Statistics for function cn2bnProcBuf */ - time_stats_t bn2cnProcBuf; /**< Statistics for function bn2cnProcBuf */ - time_stats_t llrRes2llrOut; /**< Statistics for function llrRes2llrOut */ - time_stats_t llr2bit; /**< Statistics for function llr2bit */ - time_stats_t total; /**< Statistics for total processing time */ -} t_nrLDPC_time_stats; - -/** - Structure containing the processing buffers - */ -typedef struct nrLDPC_procBuf { - int8_t* cnProcBuf; /**< CN processing buffer */ - int8_t* cnProcBufRes; /**< Buffer for CN processing results */ - int8_t* bnProcBuf; /**< BN processing buffer */ - int8_t* bnProcBufRes; /**< Buffer for BN processing results */ - int8_t* llrRes; /**< Buffer for LLR results */ - int8_t* llrProcBuf; /**< LLR processing buffer */ -} t_nrLDPC_procBuf; - - - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPCdecoder_defs.h b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPCdecoder_defs.h deleted file mode 100644 index 083fe39bff..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPCdecoder_defs.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPCdecoder_defs.h - * \brief Defines all constants and buffers for the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_DEFS__H__ -#define __NR_LDPC_DEFS__H__ - -// ============================================================================== -// DEFINES - -/** Maximum lifting size */ -#define NR_LDPC_ZMAX 384 - -/** Number of columns in BG1 */ -#define NR_LDPC_NCOL_BG1 68 -/** Number of rows in BG1 */ -#define NR_LDPC_NROW_BG1 46 -/** Number of edges/entries in BG1 */ -#define NR_LDPC_NUM_EDGE_BG1 316 -/** Number of check node (CN) groups in BG1 - A CN group is defined by its number of connected bit nodes. */ -#define NR_LDPC_NUM_CN_GROUPS_BG1 9 -/** First column in BG1 that is connected to only a single CN */ -#define NR_LDPC_START_COL_PARITY_BG1 26 - -/** Number of columns in BG1 for rate 1/3 = 22/(68-2) */ -#define NR_LDPC_NCOL_BG1_R13 NR_LDPC_NCOL_BG1 -/** Number of columns in BG1 for rate 2/3 = 22/(35-2) */ -#define NR_LDPC_NCOL_BG1_R23 35 -/** Number of columns in BG1 for rate 8/9 ~ 22/(27-2) */ -#define NR_LDPC_NCOL_BG1_R89 27 - -/** Number of bit node (BN) groups in BG1 for rate 1/3 - A BN group is defined by its number of connected CNs. */ -#define NR_LDPC_NUM_BN_GROUPS_BG1_R13 30 -/** Number of bit node (BN) groups in BG1 for rate 2/3 */ -#define NR_LDPC_NUM_BN_GROUPS_BG1_R23 8 -/** Number of bit node (BN) groups in BG1 for rate 8/9 */ -#define NR_LDPC_NUM_BN_GROUPS_BG1_R89 5 - -/** Number of columns in BG2 */ -#define NR_LDPC_NCOL_BG2 52 -/** Number of rows in BG2 */ -#define NR_LDPC_NROW_BG2 42 -/** Number of edges/entries in BG2 */ -#define NR_LDPC_NUM_EDGE_BG2 197 -/** Number of check node (CN) groups in BG2 - A CN group is defined by its number of connected bit nodes. */ -#define NR_LDPC_NUM_CN_GROUPS_BG2 6 -/** First column in BG2 that is connected to only a single CN */ -#define NR_LDPC_START_COL_PARITY_BG2 14 - -/** Number of columns in BG2 for rate 1/5 = 10/(52-2) */ -#define NR_LDPC_NCOL_BG2_R15 NR_LDPC_NCOL_BG2 -/** Number of columns in BG2 for rate 1/3 = 10/(32-2) */ -#define NR_LDPC_NCOL_BG2_R13 32 -/** Number of columns in BG2 for rate 2/3 = 10/(17-2) */ -#define NR_LDPC_NCOL_BG2_R23 17 - -/** Number of bit node (BN) groups in BG2 for rate 1/5 - A BN group is defined by its number of connected CNs. */ -#define NR_LDPC_NUM_BN_GROUPS_BG2_R15 23 -/** Number of bit node (BN) groups in BG2 for rate 1/3 */ -#define NR_LDPC_NUM_BN_GROUPS_BG2_R13 10 -/** Number of bit node (BN) groups in BG2 for rate 2/3 */ -#define NR_LDPC_NUM_BN_GROUPS_BG2_R23 6 - -/** Worst case size of the CN processing buffer */ -#define NR_LDPC_SIZE_CN_PROC_BUF NR_LDPC_NUM_EDGE_BG1*NR_LDPC_ZMAX -/** Worst case size of the BN processing buffer */ -#define NR_LDPC_SIZE_BN_PROC_BUF NR_LDPC_NUM_EDGE_BG1*NR_LDPC_ZMAX - -/** Maximum number of possible input LLR = NR_LDPC_NCOL_BG1*NR_LDPC_ZMAX */ -#define NR_LDPC_MAX_NUM_LLR 27000 - -// ============================================================================== -// GLOBAL CONSTANT VARIABLES - -/** Start addresses for the cnProcBuf for each CN group in BG1*/ -static const uint32_t lut_startAddrCnGroups_BG1[NR_LDPC_NUM_CN_GROUPS_BG1] = {0, 1152, 8832, 43392, 61824, 75264, 81408, 88320, 92160}; -/** Start addresses for the cnProcBuf for each CN group in BG2*/ -static const uint32_t lut_startAddrCnGroups_BG2[NR_LDPC_NUM_CN_GROUPS_BG2] = {0, 6912, 37632, 54912, 61824, 67968}; - -/** Number of BNs of CN group for BG1. - E.g. 10 means that there is a CN group where every CN is connected to 10 BNs */ -static const uint8_t lut_numBnInCnGroups_BG1_R13[NR_LDPC_NUM_CN_GROUPS_BG1] = {3, 4, 5, 6, 7, 8, 9, 10, 19}; -/** Number of rows/CNs in every CN group for rate = 1/3 BG1, e.g. 5 rows of CNs connected to 4 BNs */ -static const uint8_t lut_numCnInCnGroups_BG1_R13[NR_LDPC_NUM_CN_GROUPS_BG1] = {1, 5, 18, 8, 5, 2, 2, 1, 4}; -/** Number of rows/CNs in every CN group for rate = 2/3 BG1, e.g. 3 rows of CNs connected to 7 BNs */ -static const uint8_t lut_numCnInCnGroups_BG1_R23[NR_LDPC_NUM_CN_GROUPS_BG1] = {1, 0, 0, 0, 3, 2, 2, 1, 4}; -/** Number of rows/CNs in every CN group for rate = 8/9 BG1, e.g. 4 rows of CNs connected to 19 BNs */ -static const uint8_t lut_numCnInCnGroups_BG1_R89[NR_LDPC_NUM_CN_GROUPS_BG1] = {1, 0, 0, 0, 0, 0, 0, 0, 4}; - -/** Number of connected BNs for every column in BG1 rate = 1/3, e.g. in first column all BNs are connected to 30 CNs */ -static const uint8_t lut_numEdgesPerBn_BG1_R13[NR_LDPC_START_COL_PARITY_BG1] = {30, 28, 7, 11, 9, 4, 8, 12, 8, 7, 12, 10, 12, 11, 10, 7, 10, 10, 13, 7, 8, 11, 12, 5, 6, 6}; -/** Number of connected BNs for every column in BG1 rate = 2/3, e.g. in first column all BNs are connected to 12 CNs */ -static const uint8_t lut_numEdgesPerBn_BG1_R23[NR_LDPC_START_COL_PARITY_BG1] = {12, 11, 4, 5, 5, 3, 4, 5, 5, 3, 6, 6, 6, 6, 5, 3, 6, 5, 6, 4, 5, 6, 6, 3, 3, 2}; -/** Number of connected BNs for every column in BG1 rate = 8/9, e.g. in first column all BNs are connected to 5 CNs */ -static const uint8_t lut_numEdgesPerBn_BG1_R89[NR_LDPC_START_COL_PARITY_BG1] = {5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2}; - -/** Number of BNs of CN group for BG2. - E.g. 3 means that there is a CN group where every CN is connected to 3 BNs */ -static const uint8_t lut_numBnInCnGroups_BG2_R15[NR_LDPC_NUM_CN_GROUPS_BG2] = {3, 4, 5, 6, 8, 10}; -/** Number of rows/CNs in every CN group for rate = 1/5 BG2, e.g. 6 rows of CNs connected to 3 BNs */ -static const uint8_t lut_numCnInCnGroups_BG2_R15[NR_LDPC_NUM_CN_GROUPS_BG2] = {6, 20, 9, 3, 2, 2}; -/** Number of rows/CNs in every CN group for rate = 1/3 BG2, e.g. 8 rows of CNs connected to 4 BNs */ -static const uint8_t lut_numCnInCnGroups_BG2_R13[NR_LDPC_NUM_CN_GROUPS_BG2] = {0, 8, 7, 3, 2, 2}; -/** Number of rows/CNs in every CN group for rate = 2/3 BG2, e.g. 1 row of CNs connected to 4 BNs */ -static const uint8_t lut_numCnInCnGroups_BG2_R23[NR_LDPC_NUM_CN_GROUPS_BG2] = {0, 1, 0, 2, 2, 2}; - -/** Number of connected BNs for every column in BG2 rate = 1/5, e.g. in first column all BNs are connected to 22 CNs */ -static const uint8_t lut_numEdgesPerBn_BG2_R15[NR_LDPC_START_COL_PARITY_BG2] = {22, 23, 10, 5, 5, 14, 7, 13, 6, 8, 9, 16, 9, 12}; -/** Number of connected BNs for every column in BG2 rate = 1/3, e.g. in first column all BNs are connected to 14 CNs */ -static const uint8_t lut_numEdgesPerBn_BG2_R13[NR_LDPC_START_COL_PARITY_BG2] = {14, 16, 2, 4, 4, 6, 6, 8, 6, 6, 6, 13, 5, 7}; -/** Number of connected BNs for every column in BG2 rate = 2/3, e.g. in first column all BNs are connected to 6 CNs */ -static const uint8_t lut_numEdgesPerBn_BG2_R23[NR_LDPC_START_COL_PARITY_BG2] = { 6, 5, 2, 3, 3, 4, 3, 4, 3, 4, 3, 5, 2, 2}; - -// Number of groups for bit node processing -/** Number of connected CNs for every column/BN in BG1 for rate = 1/3, Worst case is BG1 with up to 30 CNs connected to one BN - E.g. 42 parity BNs connected to single CN */ - // BG1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 -static const uint8_t lut_numBnInBnGroups_BG1_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {42, 0, 0, 1, 1, 2, 4, 3, 1, 4, 3, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}; -/** Number of connected CNs for every column/BN in BG1 for rate = 2/3 */ -static const uint8_t lut_numBnInBnGroups_BG1_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = { 9, 1, 5, 3, 7, 8, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -/** Number of connected CNs for every column/BN in BG1 for rate = 8/9 */ -static const uint8_t lut_numBnInBnGroups_BG1_R89[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = { 1, 3,21, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - -/** Number of connected CNs for every column/BN in BG2 for rate = 1/5, Worst case is BG1 with up to 30 CNs connected to one BN - E.g. 38 parity BNs connected to single CN */ - // BG2: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 -static const uint8_t lut_numBnInBnGroups_BG2_R15[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {38, 0, 0, 0, 2, 1, 1, 1, 2, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}; -/** Number of connected CNs for every column/BN in BG2 for rate = 1/3 */ -static const uint8_t lut_numBnInBnGroups_BG2_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {18, 1, 0, 2, 1, 5, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -/** Number of connected CNs for every column/BN in BG2 for rate = 2/3 */ -static const uint8_t lut_numBnInBnGroups_BG2_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = { 3, 3, 5, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - -// Start addresses for the bnProcBuf for each BN group -// BG1 -/** Start address for every BN group within the BN processing buffer for BG1 rate = 1/3 */ -static const uint32_t lut_startAddrBnGroups_BG1_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {0, 16128, 17664, 19584, 24192, 34944, 44160, 47616, 62976, 75648, 94080, 99072, 109824}; -/** Start address for every BN group within the BN processing buffer for BG1 rate = 2/3 */ -static const uint32_t lut_startAddrBnGroups_BG1_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R23] = {0, 3456, 4224, 9984, 14592, 28032, 46464, 50688}; -/** Start address for every BN group within the BN processing buffer for BG1 rate = 8/9 */ -static const uint32_t lut_startAddrBnGroups_BG1_R89[NR_LDPC_NUM_BN_GROUPS_BG1_R89] = {0, 384, 2688, 26880, 28416}; - -/** Start address for every BN group within the LLR processing buffer for BG1 rate = 1/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG1_R13[NR_LDPC_NUM_BN_GROUPS_BG1_R13] = {0, 16128, 16512, 16896, 17664, 19200, 20352, 20736, 22272, 23424, 24960, 25344, 25728}; -/** Start address for every BN group within the LLR processing buffer for BG1 rate = 2/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG1_R23[NR_LDPC_NUM_BN_GROUPS_BG1_R23] = {0, 3456, 3840, 5760, 6912, 9600, 12672, 13056}; -/** Start address for every BN group within the LLR processing buffer for BG1 rate = 8/9 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG1_R89[NR_LDPC_NUM_BN_GROUPS_BG1_R89] = {0, 384, 1536, 9600, 9984}; - -// BG2 -/** Start address for every BN group within the BN processing buffer for BG2 rate = 1/5 */ -static const uint32_t lut_startAddrBnGroups_BG2_R15[NR_LDPC_NUM_BN_GROUPS_BG2_R15] = {0, 14592, 18432, 20736, 23424, 26496, 33408, 37248, 41856, 46848, 52224, 58368, 66816}; -/** Start address for every BN group within the BN processing buffer for BG2 rate = 1/3 */ -static const uint32_t lut_startAddrBnGroups_BG2_R13[NR_LDPC_NUM_BN_GROUPS_BG2_R13] = {0, 6912, 7680, 10752, 12672, 24192, 26880, 29952, 34944, 40320}; -/** Start address for every BN group within the BN processing buffer for BG2 rate = 2/3 */ -static const uint32_t lut_startAddrBnGroups_BG2_R23[NR_LDPC_NUM_BN_GROUPS_BG2_R23] = {0, 1152, 3456, 9216, 13824, 17664}; - -/** Start address for every BN group within the LLR processing buffer for BG2 rate = 1/5 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG2_R15[NR_LDPC_NUM_BN_GROUPS_BG2_R15] = {0, 14592, 15360, 15744, 16128, 16512, 17280, 17664, 18048, 18432, 18816, 19200, 19584}; -/** Start address for every BN group within the LLR processing buffer for BG2 rate = 1/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG2_R13[NR_LDPC_NUM_BN_GROUPS_BG2_R13] = {0, 6912, 7296, 8064, 8448, 10368, 10752, 11136, 11520, 11904}; -/** Start address for every BN group within the LLR processing buffer for BG2 rate = 2/3 */ -static const uint16_t lut_startAddrBnGroupsLlr_BG2_R23[NR_LDPC_NUM_BN_GROUPS_BG2_R23] = {0, 1152, 2304, 4224, 5376, 6144}; - -/** Vector of 32 '1' in int8 for application with AVX2 */ -static const int8_t ones256_epi8[32] __attribute__ ((aligned(32))) = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; -/** Vector of 32 '0' in int8 for application with AVX2 */ -static const int8_t zeros256_epi8[32] __attribute__ ((aligned(32))) = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; -/** Vector of 32 '127' in int8 for application with AVX2 */ -static const int8_t maxLLR256_epi8[32] __attribute__ ((aligned(32))) = {127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127}; - -/** Vector of 64 '1' in int8 for application with AVX512 */ -static const int8_t ones512_epi8[64] __attribute__ ((aligned(64))) = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; -/** Vector of 64 '0' in int8 for application with AVX512 */ -static const int8_t zeros512_epi8[64] __attribute__ ((aligned(64))) = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; -/** Vector of 64 '127' in int8 for application with AVX512 */ -static const int8_t maxLLR512_epi8[64] __attribute__ ((aligned(64))) = {127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127}; - - - - -#endif diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/complete/nrLDPC_bnProc.h.1 b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/complete/nrLDPC_bnProc.h.1 deleted file mode 100644 index 5cf22728a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/complete/nrLDPC_bnProc.h.1 +++ /dev/null @@ -1,5533 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_bnProc.h - * \brief Defines the functions for bit node processing - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#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. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size -*/ -#ifdef __AVX512BW__ - -static inline void nrLDPC_bnProcPc_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numBnInBnGroups = p_lut->numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m256i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m256i* p_llrProcBuf; - __m512i* p_llrProcBuf256; - __m512i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m512i zmm0, zmm1, zmmRes0, zmmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 63)>>6; - - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m512i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m512i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m512i* p_llrRes; - __m512i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i>5; - uint32_t Mr = numLLR&31; - - const __m256i* p_zeros = (__m256i*) zeros256_epi8; - const __m256i* p_ones = (__m256i*) ones256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - p_out8 = (int8_t*) p_out; - - for (i=0; i>5; - uint32_t Mr = numLLR&31; - const __m256i* p_shuffle = (__m256i*) constShuffle_256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - - for (i=0; i - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif -// nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - // nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - // nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif -// nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/nrLDPC_bnProc.h b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/nrLDPC_bnProc.h deleted file mode 100644 index 5cf22728a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/nrLDPC_bnProc.h +++ /dev/null @@ -1,5533 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_bnProc.h - * \brief Defines the functions for bit node processing - * \author Sebastian Wagner (TCL Communications) Email: - * \date 27-03-2018 - * \version 1.0 - * \note - * \warning - */ - -#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. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size -*/ -#ifdef __AVX512BW__ - -static inline void nrLDPC_bnProcPc_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numBnInBnGroups = p_lut->numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m256i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m256i* p_llrProcBuf; - __m512i* p_llrProcBuf256; - __m512i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m512i zmm0, zmm1, zmmRes0, zmmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 63)>>6; - - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m512i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - int8_t* llrProcBuf = p_procBuf->llrProcBuf; - - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - - // ===================================================================== - // Process group with 1 CN - - // There is always a BN group with 1 CN - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; - - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 11 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m128i*) &bnProcBuf [lut_startAddrBnGroups [idxBnGroup]]; - p_llrProcBuf = (__m128i*) &llrProcBuf [lut_startAddrBnGroupsLlr[idxBnGroup]]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0,j=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m512i* p_bnProcBuf; - __m512i* p_bnProcBufRes; - __m512i* p_llrRes; - __m512i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 63)>>6; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m512i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m512i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m512i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; inumBnInBnGroups; - const uint32_t* lut_startAddrBnGroups = p_lut->startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr = p_lut->startAddrBnGroupsLlr; - - int8_t* bnProcBuf = p_procBuf->bnProcBuf; - int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; - int8_t* llrRes = p_procBuf->llrRes; - - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; - - // Number of BNs in Groups - uint32_t M; - //uint32_t M32rem; - uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - // ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - // Process group with 2 CNs - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<2; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<3; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<4; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[4]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<5; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[5]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<6; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes[lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[6]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<7; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[7]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<8; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[8]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<9; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[9]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<10; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[10]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<11; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[11]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 12 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<12; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[12]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 13 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<13; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[13]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 14 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<14; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[14]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 15 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<15; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[15]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 16 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<16; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[16]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 17 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<17; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[17]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 18 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<18; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[18]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<19; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[19]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 20 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<20; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[20]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 21 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<21; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[21]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 22 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<22; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[22]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 23 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<23; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[23]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 24 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<24; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[24]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 25 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<25; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[25]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 26 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<26; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[26]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 27 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<27; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[27]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 28 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<28; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[28]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 29 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<29; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[29]*Z + 31)>>5; - - // Set the offset to each CN within a group in terms of 32 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 30 - p_bnProcBuf = (__m256i*) &bnProcBuf [lut_startAddrBnGroups[idxBnGroup]]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes[lut_startAddrBnGroups[idxBnGroup]]; - - // Loop over CNs - for (k=0; k<30; k++) - { - p_res = &p_bnProcBufRes[k*cnOffsetInGroup]; - p_llrRes = (__m256i*) &llrRes [lut_startAddrBnGroupsLlr[idxBnGroup]]; - - // Loop over BNs - for (i=0; i>5; - uint32_t Mr = numLLR&31; - - const __m256i* p_zeros = (__m256i*) zeros256_epi8; - const __m256i* p_ones = (__m256i*) ones256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - p_out8 = (int8_t*) p_out; - - for (i=0; i>5; - uint32_t Mr = numLLR&31; - const __m256i* p_shuffle = (__m256i*) constShuffle_256_epi8; - - for (i=0; i 0) - { - // Remaining LLRs that do not fit in multiples of 32 bytes - p_llrOut8 = (int8_t*) p_llrOut; - - for (i=0; i - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_CNPROC__H__ -#define __NR_LDPC_CNPROC__H__ - -/** - \brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer. - \param p_lut Pointer to decoder LUTs - \param p_procBuf Pointer to processing buffers - \param Z Lifting size -*/ -static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - __m256i *pj0 = &p_cnProcBuf[lut_idxCnProcG3[j][0]]; - __m256i *pj1 = &p_cnProcBuf[lut_idxCnProcG3[j][1]]; - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m512i* p_cnProcBuf; - __m512i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m512i zmm0, min, sgn, zeros,maxLLR; - - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - __m512i* p_cnProcBufResBit; - - - const __m512i* p_ones = (__m512i*) ones512_epi8; - const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8; - - - - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 7 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 9 BNs - - if (lut_numCnInCnGroups[6] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[6]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[7] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[7]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 19 BNs - - if (lut_numCnInCnGroups[8] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[8]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -/** - \brief Performs parity check for BG2 on the CN processing buffer. Stops as soon as error is detected. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size - \return 32-bit parity check indicator -*/ -static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -#endif - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/nrLDPC_decoder.c deleted file mode 100644 index 8932b3375c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/nrLDPC_decoder.c +++ /dev/null @@ -1,541 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - // nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProcPc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif -// nrLDPC_bnProc(p_lut, p_procBuf, Z); - #ifdef __AVX512BW__ - nrLDPC_bnProc_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_bnProc(p_lut, p_procBuf, Z); - #endif - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/version_deroulé/nrLDPC_cnProc.h b/openair1/PHY/CODING/nrLDPC_decoder2/version_deroulé/nrLDPC_cnProc.h deleted file mode 100644 index 02a9f8554c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/version_deroulé/nrLDPC_cnProc.h +++ /dev/null @@ -1,2444 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_cnProc.h - * \brief Defines the functions for check node processing - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 1.0 - * \note - * \warning - */ - -#ifndef __NR_LDPC_CNPROC__H__ -#define __NR_LDPC_CNPROC__H__ - -/** - \brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer. - \param p_lut Pointer to decoder LUTs - \param p_procBuf Pointer to processing buffers - \param Z Lifting size -*/ -static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - __m256i *pj0 = &p_cnProcBuf[lut_idxCnProcG3[j][0]]; - __m256i *pj1 = &p_cnProcBuf[lut_idxCnProcG3[j][1]]; - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m512i* p_cnProcBuf; - __m512i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m512i zmm0, min, sgn, zeros,maxLLR; - - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - __m512i* p_cnProcBufResBit; - - - const __m512i* p_ones = (__m512i*) ones512_epi8; - const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8; - - - - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m512i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m512i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t bitOffsetInGroup; - - __m256i ymm0, min, sgn; - __m256i* p_cnProcBufResBit; - - const __m256i* p_ones = (__m256i*) ones256_epi8; - const __m256i* p_maxLLR = (__m256i*) maxLLR256_epi8; - - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32) - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over every BN - for (j=0; j<3; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over every BN - for (j=0; j<4; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over every BN - for (j=0; j<5; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over every BN - for (j=0; j<6; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over every BN - for (j=0; j<7; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over every BN - for (j=0; j<8; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over every BN - for (j=0; j<9; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over every BN - for (j=0; j<10; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; i 0) - { - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 31)>>5; - - // Set the offset to each bit within a group in terms of 32 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over every BN - for (j=0; j<19; j++) - { - // Set of results pointer to correct BN address - p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - - // Loop over CNs - for (i=0; inumCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<3; j++) - { - // BN offset is units of (1*384/32) = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<4; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<5; j++) - { - // BN offset is units of 18*384/32 = 216 - ymm0 = p_cnProcBuf [j*216 + i]; - ymm1 = p_cnProcBufRes[j*216 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<6; j++) - { - // BN offset is units of 8*384/32 = 96 - ymm0 = p_cnProcBuf [j*96 + i]; - ymm1 = p_cnProcBufRes[j*96 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 7 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 7 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<7; j++) - { - // BN offset is units of 5*384/32 = 60 - ymm0 = p_cnProcBuf [j*60 + i]; - ymm1 = p_cnProcBufRes[j*60 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 9 BNs - - if (lut_numCnInCnGroups[6] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[6]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 9 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[6]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[6]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<9; j++) - { - // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[7] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[7]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[7]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[7]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - for (j=0; j<10; j++) - { - // BN offset is units of 1*384/32 = 12 - ymm0 = p_cnProcBuf [j*12 + i]; - ymm1 = p_cnProcBufRes[j*12 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 19 BNs - - if (lut_numCnInCnGroups[8] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[8]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 19 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[8]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[8]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN (Last BN is connected to multiple CNs) - // Compute PC for 32 CNs at once - for (j=0; j<19; j++) - { - // BN offset is units of 4*384/32 = 48 - ymm0 = p_cnProcBuf [j*48 + i]; - ymm1 = p_cnProcBufRes[j*48 + i]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -/** - \brief Performs parity check for BG2 on the CN processing buffer. Stops as soon as error is detected. - \param p_lut Pointer to decoder LUTs - \param Z Lifting size - \return 32-bit parity check indicator -*/ -static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) -{ - const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; - - int8_t* cnProcBuf = p_procBuf->cnProcBuf; - int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; - - __m256i* p_cnProcBuf; - __m256i* p_cnProcBufRes; - - // Number of CNs in Groups - uint32_t M; - uint32_t i; - uint32_t j; - uint32_t pcRes = 0; - uint32_t pcResSum = 0; - uint32_t Mrem; - uint32_t M32; - - __m256i ymm0, ymm1; - - // ===================================================================== - // Process group with 3 BNs - - if (lut_numCnInCnGroups[0] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[0]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 3 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[0]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[0]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 4 BNs - - if (lut_numCnInCnGroups[1] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[1]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 4 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[1]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[1]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 5 BNs - - if (lut_numCnInCnGroups[2] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[2]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 5 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[2]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[2]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 6 BNs - - if (lut_numCnInCnGroups[3] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[3]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 6 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[3]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[3]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 8 BNs - - if (lut_numCnInCnGroups[4] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[4]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 8 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[4]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[4]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - // ===================================================================== - // Process group with 10 BNs - - if (lut_numCnInCnGroups[5] > 0) - { - // Reset results - pcResSum = 0; - - // Number of CNs in group - M = lut_numCnInCnGroups[5]*Z; - // Remainder modulo 32 - Mrem = M&31; - // Number of groups of 32 CNs for parallel processing - // Ceil for values not divisible by 32 - M32 = (M + 31)>>5; - - // Set pointers to start of group 10 - p_cnProcBuf = (__m256i*) &cnProcBuf [lut_startAddrCnGroups[5]]; - p_cnProcBufRes = (__m256i*) &cnProcBufRes[lut_startAddrCnGroups[5]]; - - // Loop over CNs - for (i=0; i<(M32-1); i++) - { - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - pcResSum |= pcRes; - } - - // Last 32 CNs might not be full valid 32 depending on Z - pcRes = 0; - // Loop over every BN - // Compute PC for 32 CNs at once - 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]; - - // Add BN and input LLR, extract the sign bit - // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); - } - - // If no error pcRes should be 0 - // Only use valid CNs - pcResSum |= (pcRes&(0xFFFFFFFF>>(32-Mrem))); - - // If PC failed we can stop here - if (pcResSum > 0) - { - return pcResSum; - } - } - - return pcResSum; -} - -#endif - diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/version_deroulé/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder2/version_deroulé/nrLDPC_decoder.c deleted file mode 100644 index 051ab11232..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/version_deroulé/nrLDPC_decoder.c +++ /dev/null @@ -1,3711 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines thenrLDPC decoder -*/ - -#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" - - - - /*----------------------------------------------------------------------/ - / included files for -->AVX512 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------- -#ifdef __AVX512BW__ -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z104_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z2_13_AVX512.c" - -//BG2------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z104_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z3_15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z2_15_AVX512.c" - -#else - - /*----------------------------------------------------------------------/ - / included files for -->AVX2 / -/----------------------------------------------------------------------*/ - -//BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z384_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z352_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z320_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z288_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z256_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z240_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z224_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z208_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z192_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z176_13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z160_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z144_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z128_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z120_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z112_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z104_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z96_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z88_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z80_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z72_13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z64_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z60_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z56_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z52_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z48_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z44_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z40_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z36_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z32_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z30_13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z28_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z26_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z24_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z22_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z20_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z18_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z16_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z15_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z14_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z13_13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z12_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z11_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z10_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z9_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z8_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z7_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z6_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z5_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z4_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z3_13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG1_Z2_13_AVX2.c" - -//BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z384_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z352_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z320_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z288_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z256_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z240_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z224_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z208_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z192_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z176_15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z160_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z144_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z128_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z120_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z112_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z104_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z96_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z88_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z80_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z72_15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z64_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z60_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z56_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z52_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z48_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z44_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z40_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z36_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z32_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z30_15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z28_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z26_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z24_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z22_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z20_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z18_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z16_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z15_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z14_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z13_15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z12_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z11_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z10_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z9_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z8_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z7_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z6_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z5_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z4_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z3_15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/avx2/nrLDPC_cnProc_BG2_Z2_15_AVX2.c" -#endif - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // LaunchnrLDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief PerformsnrLDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParamsnrLDPC decoder parameters - \param p_profilernrLDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - // 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 - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z13_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z12_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z11_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - } //end if - else - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z15_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z13_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z12_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z13_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z12_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z11_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - } //end if - else - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z15_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z13_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z12_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - }//end of else -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG==1) - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z13_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z12_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z11_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - } //end if - else - { - switch (Z) - { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z15_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 13: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z13_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 12: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z12_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - } - }//end of else - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - -